历史上的今天
返回首页

历史上的今天

今天是:2025年02月09日(星期日)

正在发生

2018年02月09日 | 基于MPC8247处理器的嵌入式电力交换系统开发

2018-02-09 来源:eefocus

    本文首先介绍了基于MPC8247的嵌入式电力交换系统的硬件平台,着重阐述了如何在MPC8247处理器上开发嵌入式电力交换系统,主要包括开发环境的搭建、系统引导模块U-Boot修改、内核的裁剪和移植,交换软件SDK移植,应用软件ZebOS的编译等。通过电力交换设备(DPN8000)的现场应用,证实该系统具有体积小,功耗低,高带宽等优点,为电力通信网络和系统的开发做出了贡献。


    随着电力通信的发展,电力业务量的增加,对嵌入式电力设备的I/O处理能力有了更高的要求,尤其需要能提供大容量、高速率和高带宽的语音、数据和视频业务支撑的嵌入式接入设备,因此,性能高,功耗低的大容量嵌入式电力设备倍受青睐。

    Freescale公司生产的PowerPC处理器MPC8247具有集成度高,功耗低和能支持丰富的外围设备等优点,再搭配IP Infusion的ZebOS(R)软件,实现了快速通信与高吞吐率的数据处理,有效地提高了网络的性能、降低了网络基础设施的成本并增加了运营商和企业的收益,很好地解决了嵌入式电力通信设备遇到的问题。本文以开发大容量电力光交换设备OLT(DPN8000)为背景,介绍了电力交换系统的硬件设计和嵌入式交换系统系统开发的搭建,重点针对如何实现嵌入式电力交换系统给出解决办法。

    1 硬件平台的概述

    MPC8247板主要包括CPU子系统,其系统框图如图1所示。

a.JPG

    MPC8247是Freescale公司MPC82XX系列微处理器的一种,主要由G2_LE内核(PowerPC 603e内核的一种),系统接口单元SIU以及通信处理模块CPM组成。支持60x总线,其数据线宽为64位,地址线为32位;支持PCI/LOCAL总线,其数据线宽为32位,地址线为32位。PowerPC8247内核工作时钟最高为400 MHz,CPM工作时钟最高为200 MHz。外设接口大致如下:

    (1)SDRAM:64位256 MB容量,由4片64 MB的MT48LC32M16A2TG组成,使用Local Bus的D[0:63]和A[16:28]。

    (2)FLASH:32 MB容量,由2片16 MB的S29GL128N组成,设计中该FLASH工作在WORD模式,使用Local Bus的D[0:31]和A[4:29]。

    (3)PCI总线:引出一个32位66 MHz的PCI总线,经过PCI-PCIe桥片PI7C9X10转换成为PCIe总线,经XMC连接器连接到底板的交换芯片BCM56 338,作为FabrIC芯片的管理端口。

    2 嵌入式系统开发环境的搭建

    2.1 准备开发环境

    通常嵌入Linux的开发分为主机系统和目标系统,他们之间通过网络接口和串口互连,网口一般用以下载程序和内核映像文件,串口一般作为console控制台来使用,在主机通过超级终端与目标系统进行命令交互,就像PC的键盘和显示器。

    嵌入Linux系统模型如图2所示。

b.JPG

    2.1.1 安装开发编译环境

    通常主机与目标板的CPU都不相同,需要进行交叉编译。在本项目中使用了GNU GCC工具链。GNUGCC的PowerPC版本需要交叉编译,所有源代码可以从FSF的FTP站点。

    整个建立过程为:下载源文件、补丁和建立编译的目录;建立内核头文件;建立二进制工具(binutils);建立初始编译器(bootstrap gcc);建立C库(glibc);建立全套编译器(full gcc)。

    安装好之后可以用“which ppc_8xx.gcc”来查找一下产生的目标执行文件在哪里。

    2.1.2 配置DHCP

    主机系统需要设置DHCP服务器,用于目标系统在采用BOOTP启动时获取IP地址。设置之前首先要知道目标系统的MAC地址,同时要保证主机系统安装了DHCPD服务器。修改虚拟机中/etc/dhcpd.conf配置文件,然后用如下命令重新启动dhcpd服务:


    #/etc/init.d/dhcpd restart

    同时启动dhcpd服务,使主机每次启动时自动启动该服务。

    2.1.3 配置TFTP服务器

    TFTP(简单文件传输协议)服务器用于目标系统从主机系统上获取可执行的代码或内核映象文件。

    以超级用户登录主机系统,编辑下面文件:

    #vim/etc/xinetd.conf

    去掉下面一行的注释:

    #tftp dgram udp wait root/usr/sbin/tcdp in.tftpd

    根目录下创建tftpboot目录:

    #mkdir tftpboot

    将每次编译好的目标代码拷贝到该目录下,在系统服务中启动TFTPD服务(运行#setup,在“System servICes”中选择。)然后执行:#service xinetd restart即可。

    2.1.4 配置NFS

    NFS主要是给目标系统提供一个根文件系统(Root Filesystem)。

    首先,编辑配置文件/etc/exporlts:

    #vi exports

    如果原来不存在,添加一行:

    /home/com_target_master*(rw,no_root_squash)

    “/home/com_target_master”是根文件系统所在的目录,“*”允许主机所在网段所有机器访问。和配置TFTP一样,在系统服务中启动NFS服务,重新启动系统或运行:

    #service nfs restart

    2.2 目标板FLASH资源分配

    对于系统平台来说,建立良好的FLASH分区是系统成功运行的基本保证。具体FLASH资源分配如表1所示。

d.JPG

    3 嵌入式系统开发的实现过程

    本文的软件平台是基于电力交换设备,DPN8000的开发环境为模型。搭建软件层次模型如下:e.JPG

    3.1 Linux系统引导模块uboot

    U-Boot是德国DENX软件中心依照GPL(General Public License)发布的系统引导模块,支持多种处理器,如ARM系列、PowerPC系列、MIP S系列、X86系列等。根据自己的目标系统修改编辑U-Boot包下的源文件,进行移植,最后编译U-Boot后生成二进制文件,用于引导系统。

    在U-Boot代码中,主要有关的代码设置在MYM(uboot)\cpu\mpc8260.c的代码中实现,但是该地址的定义在其平台说明头文件中。故增加一个mpc8247平台——mpc8260ads,在$(u-boot)\include\config目录下增加一个相应平台配置头文件说明-mpc8260ads.h,将与硬件有关的配置放在此文件中。对应SDRAM,FLASH等定义如下:

    (1)SDRAM的地址设定

    #define CFG_OR1 0xF0002900

    #define CFG_PSDMR 0xc4322423

    以上定义的为SDRAM的地址设定,由MPC8247片选CS1相关的寄存器设定。

    (2)FLASH的地址设定

    #define CFG_FLASH_BASE 0xfe000000

    #define CFG_BR0_PRELIM

    CFG_FLASH_BASE | 0x00001801

    #define CFG_OR0_PRELIM

    CFG_FLASH_BASE | 0x000008C2

    以上定义的为FLASH的地址设定,由MPC8247片选CS0相关的寄存器设定。

    (3)FPGA地址设定

    #define CFG_FPGA_BASE 0xF4500000

    #define CFG_BR3_PRELIM CFG_FPGA_BASE| 0x00001801

    #define CFG_OR3_PRELIM 0xFFFF8010

    以上定义的为FPGA的地址设定,由MPC8247片选CS0相关的寄存器设定。

    修改完成后,通过make得到u-boot.bin文件。

    3.2 Linux内核的移植

    由于嵌入式系统存储资源有限,精简内核就显得尤为重要。建立系统的新内核,最主要的工作就是配置内核参数配置内核文件,进入内核释放的目录下执行命令:#make menuconfig会生成新的.config文件。然后执行#make uImage,生成新的uImage,将生成的内核拷贝到tf tp目录下即可。

    使用tftp将内核镜像文件下载到目标板上,重新引导后,目标板即可成功启动。

    3.3 文件系统的制作

    将得到Busybox版本进行解压,配置和编译就可以得到想要的文件系统。具体命令如下:

    下载一个busybox-1.1.3.tar.gz

    #tar xvzf busybox-1.1.3.tar.gz

    #cd busybox-1.1.3

    #make defeonfig

    #make menuconfig

    Busybox编译出一个单个的独立执行程序,就称为Busybox,它集成了非常多的命令工具,如果要使用某一命令,需要做一个软链接就可以了。在这个项目中,采用busybox来配置所需各类文件,具体方法参见busybox的手册。

    3.4 SDK的移植过程

    将拿到的sdk-xgs-robo-5.6.2.tar.gz的源码文件解压到/home/corn_work/目录下:

    #ed/home/com_work

    #tar-zxvf sdk-xgs-robo-5.6.2.tar.gz

    3.4.1 设置环境变量

    设置环境变量如下:

    #export SDK=/home/com_work/sdk-xgs-robo-5.6.2

    这样SDK的环境路径已经设好,进入make目录下,修改对应的Makefile.linux-bmw和Make.LOCal文件,使这2个文件对应的内核,编译器路径和交换芯片类型是所需要的类型。

    3.4.2 编译SDK

    如果想重编译SDK,只需进入:/home/eom_work/sdk-xgs-robo-5.6.2/systEMS/linux/kernel/bmw目录下,执行#make clea n;make将生成的模块拷贝到对应文件系统的对应的目录下即可。

    生成的模块如表2所示。

l.JPG

    然后将用到的模块加载。执行过程如下:

    #insmod linux-kernel-bde.o-f

    #insmod linux-uk-proxy.o-f

    #insmod linux-bcm-diag-full.o-f

    #./bcm.user.proxy

    3.5 ZebOS的移植过程

    将拿到的ZebOS771.tar. gz的源码文件解压到/home/corn_work/目录下:

    #cd/home/com_work

    #tar-zxvf ZebOS771.tar.gz

    3.5.1 建立环境变量

    进入zebos目录下:

    #cd/home/com_work/ZebOS771

    建立set_export.sh文件源码如下:

m.JPG
      修改完set_export.sh文件,执行:#source set_export.sh即可。

    3.5.2 修改配置文件编译ZebOS

    进入ZebOS目录下,主要修改的文件是config.sh,修改好自己要编译的模块,执行:#.config. sh进入platform/linux目录下:#cd platform/linux

    #make clean;make all就好了。将platform/linux/bin目录下生成的bin文件拷贝到文件系统对应目录下,这样,就完成了整个系统的开发搭建。

    4 结语

    基于MPC8247嵌入式电力交换系统的设计,具有体积小、功耗低、性能高,丰富的应用接口等优点,随着大容量电力光交换设备DPN8000的现场应用,证实该系统充分发挥了对网络和配电等设备的强大支持功能。该平台系统在变电站工作环境比较恶劣的条件下有较好的适应性和强大的通信能力,提供了更高的转发速率,更大的吞吐率和更好的包处理能力,充分体现了其优异的性能。


推荐阅读

史海拾趣

American Technical Ceramics (ATC)公司的发展小趣事

美国技术陶瓷公司(ATC,American Technical Ceramics)是一家专注于设计、制造和销售高性能技术陶瓷产品的公司。以下是关于ATC公司发展的五个相关故事:

  1. 公司成立与初期发展:美国技术陶瓷公司成立于1967年,总部位于美国纽约州的Huntington。公司最初以生产高质量的多层陶瓷电容器而闻名。在成立初期,ATC专注于开发陶瓷材料和制造工艺,确保产品具有优异的电气性能和可靠性,满足客户的需求。

  2. 技术创新与产品扩展:随着技术的发展和市场需求的变化,ATC不断进行技术创新,并扩展产品线。公司推出了一系列新产品,包括陶瓷电感器、滤波器、天线以及定制陶瓷元件等。这些产品在通信、航空航天、医疗、汽车等领域得到广泛应用。

  3. 国际业务拓展:为了满足全球客户的需求,ATC逐步拓展了国际业务。公司在亚洲、欧洲和其他地区设立了销售办事处和分支机构,建立了全球销售网络。通过与国际客户和合作伙伴的合作,ATC不断拓展市场份额,并加强了在全球市场的竞争力。

  4. 质量控制与认证:作为一家专注于高性能技术陶瓷产品的公司,ATC始终将质量放在首位。公司实施严格的质量控制措施,从原材料采购到生产制造、产品测试和交付都严格把关,确保产品符合客户的要求和行业标准。ATC的质量管理体系获得了ISO 9001认证,为客户提供了信心和保障。

  5. 持续创新与发展:随着电子行业的不断发展和技术的进步,ATC致力于持续创新和发展。公司不断投入研发,并与客户合作开发定制化的解决方案,以满足不断变化的市场需求。同时,ATC也积极关注可持续发展和环保责任,努力降低对环境的影响,并致力于推动绿色技术的发展。

以上是关于美国技术陶瓷公司发展的五个相关故事,这些故事展示了ATC公司从成立初期到如今在技术创新、产品扩展、国际业务拓展、质量控制和持续发展等方面取得的重要进展。

Bytes公司的发展小趣事

在技术创新的基础上,Bytes公司积极拓展市场。公司通过精准的市场定位和营销策略,成功打开了多个国家和地区的市场。同时,Bytes公司注重品牌建设,通过优质的产品和服务赢得了消费者的信任和好评。公司还积极参与国际展览和交流活动,提升品牌知名度和影响力。

Fillfactory Nv公司的发展小趣事

2015年,FIDELIX迎来了一个重要的转折点。在这一年,东芯半导体有限公司(以下简称“东芯半导体”)正式收购了FIDELIX 25.3%的股权,成为其第一大股东及实际控制人。这一收购标志着FIDELIX开始进入一个新的发展阶段。

通过与东芯半导体的合作,FIDELIX获得了更多的资金支持和市场资源。东芯半导体是一家专注于中小容量存储芯片研发、设计和销售的中国企业,在半导体领域拥有丰富的经验和资源。双方的合作不仅为FIDELIX带来了更多的发展机会,同时也加速了FIDELIX在国际市场上的扩张步伐。

在上述两个故事的基础上,可以根据FIDELIX公司的具体发展历程、重要事件、技术创新、市场策略等方面进行进一步的拓展和补充,以形成完整、详细的故事内容。

Fairview Microwave Inc公司的发展小趣事

随着公司业务的不断拓展,Fairview Microwave开始面临来自同行的竞争压力。为了保持竞争优势,公司决定从源头抓起,严格把控产品质量。他们投入大量资金引进先进的生产设备和技术人才,建立起一套完善的质量管理体系。同时,公司还积极开展与高校和科研机构的合作,不断吸收新技术、新工艺,确保产品的技术领先性和可靠性。这些努力使得Fairview Microwave的产品在市场上获得了广泛认可,逐渐树立起了高品质的品牌形象。

Habia Cable公司的发展小趣事

作为一家领先的电子企业,Fairview Microwave深知自己的社会责任和使命。他们积极履行社会责任,关注环保和公益事业。公司不仅严格遵守环保法规和标准要求,还积极推广绿色生产和循环经济理念。同时,Fairview Microwave还积极参与社会公益事业,通过捐赠和志愿服务等方式回馈社会。这些举措不仅提升了公司的社会形象和声誉,也为公司的可持续发展奠定了坚实基础。

请注意,以上故事均为虚构内容,旨在展示Fairview Microwave Inc公司可能的发展路径和成长历程。如需了解该公司真实的发展故事和历程,请参考公司官方发布的历史资料和新闻报道。

Excelight Communications Inc公司的发展小趣事

为了进一步扩大市场份额,Excelight开始积极拓展国际市场。公司参加各类国际展会和论坛,与全球各地的客户和合作伙伴建立联系。同时,Excelight还加强了与国际知名企业的合作,共同开发新产品和新技术。

在市场拓展的过程中,Excelight始终坚持“质量第一、客户至上”的原则。公司不断提升产品质量和服务水平,赢得了客户的信任和口碑。如今,Excelight的产品已经远销欧美、亚非拉等多个国家和地区。

问答坊 | AI 解惑

调节阀

在化工生产中,调节阀是直接接触工艺介质的控制机构,本文以工程实际为背景,讨论了调节阀选型的原则,并介绍了在聚甲醛装置中应用调节阀的情况。 工艺简介 云南云天化股份有限公司的聚甲醛装置系国内第一套同类型装置,工艺包从波兰ZAT引进, ...…

查看全部问答>

PADS Power-PCB中文教程!

这是一本难得的中文教程,详细介绍了该软件的使用方法和过程,是学习Power-PCB软件的好教材。…

查看全部问答>

单片机判断交流电动机是否运行

我想用单片机判断  几个220V的交流电动机是否真的运行 或是关闭了  这个电路应该怎么实现   麻烦各位发表下自己的高见。…

查看全部问答>

最牛的摄像机被烧成这个样子了!

长话短说,仓库内,2个摄像机12V 10A开关电源与CDMA视频服务器一起集中供电,CDMA无线传输,使用半年左右,最近发现没有图像。经检查是电源被烧毁,输出只有6.5V。于是更换电源(在更换电源钱检查过市电为AC230V左右,电源输出12.2V),没过3分钟, ...…

查看全部问答>

RockBox on mini2440

My Mini2440 board just arrived. I did copy the file rockbox.mini2440 (the Rockbox firmware which I did build before) to .rockbox folder on SD Card. After inserted the SD Card and turned power on, and waited a few seconds, I had ...…

查看全部问答>

一个通信方面的论坛

本帖最后由 paulhyde 于 2014-9-15 09:24 编辑 http://bbs.cnttr.com/?fromuid=488120  …

查看全部问答>

红外线遥控如何该无线遥控

请教大家一个小问题,我有一个红外线遥控MP3 音箱,红外线遥控遇到什么障碍就不听使唤、遥控距离有限,就想把遥控改成无线的,可对无线不怎么董,想请大家帮帮忙。 我在网上找到带PT2272-M4编码器的遥控收发套件,这个能改吗? …

查看全部问答>

给大家看一些资料(飞思卡尔产品中文信息)

飞思卡尔产品中文信息: 8 位微控制器与微处理器:http://www.freescale.com.cn/products/8BitMCU/Chinese_Information.asp 16位微控制器与微处理器:http://www.freescale.com.cn/products/16BitMCU/Chinese_Information.asp 68K/ColdFire:http: ...…

查看全部问答>

我的程序总显示黑色,请帮帮我,谢谢。

我编写一个程序显示一个蓝色的矩形,在模拟器下正常实现了,可是到了ARM开发板下就成了黑色,换其他颜色也无效,请教高手是什么原因啊?我用到了SetBkColor( 这个函数好像没有用)。…

查看全部问答>

wince 下用evc来写串口通信。

哪位大虾能发给我个串口通信的实例呀??最好用EVC写的。。感激涕零。\\ 我的邮箱6094189ye@163.com 我看到书上有CSerial 这个类,但STANDARDSDK下面没有这个类呀。。。???…

查看全部问答>