datasheet

基于ARM与μClinux的RTU嵌入式设计

2015-03-13来源: idcquan关键字:ARM  μClinux  RTU
  在电力系统变电所以及电气化铁道牵引变电所远动控制系统中,远程数据采集与监控终端(RTU)是关键设备,实现遥控、遥测、遥信等功能。

  采用工业控制计算机,扩展测控硬件接口电路,是RTU设计常见的方法,但是这种方法设计的RTU成本高、体积大、耗电大。采用80C196等单片机设计RTU,由于单片机的运算处理和硬件扩展等能力较低,影响RTU的性能。而基于arm处理器设计的RTU,硬件上具有成本低、体积小、耗电省、处理能力强等优点;软件上由于采用μClinux操作系统,有许多优秀的应用程序成果可以利用。正是由于这些优势,采用arm和μClinux设计RTU已经成为一个热点[1]。

  1 RTU硬件电路设计

  1.1 RTU总体结构

  RTU的核心部分是计算机,包括处理器、存储器、人机接口等。为了执行RTU的测控功能,需要扩展大量外围接口电路。不同变电所的测控对象数量差别很大。为了提高RTU的通用性,一种普遍采用的可行的办法是将测控电路模块化。根据模块化的设计思想以及S3C4510B[2]和μClinux[3]的特点,RTU硬件总体结构设计的原理框图如图1。

各种电路按功能设计成相应模块,以母板总线为接口基础。

  主板模块以S3C4510B为核心。主要配置是:16M字节动态随机存储器SDRAM(两片HY57V651620B),2M字节的Flash(一片AM29LV160DB);处理器内部集成两个异步串行通信接口,串口0和串口1;一个10Mbps以太网接口;看门狗与复位电路(MAX507);RTU母板总线驱动电路。

  串口0作为控制台,用于调试;串口1接LCD显示屏和触摸屏,实现当地监控的人机界面。

  测控接口电路主要有遥控模块、遥信模块(开关量采集)和遥测模块(模拟量采集)。遥控和摇信模块由母板总线直接扩展。遥测模块采用现场总线(CAN)通信接口。为此在RTU母板总线上扩展CAN总线通信模块,实现与遥测模块的通信。

  串口模块(PC16C550)从母板总线上扩展。用该模块连接调制解调器(MODEM),实现RTU远程通信。

  1.2 RTU母板总线

  RTU母板总线是测控硬件模块扩展的基础,又是处理器总线上的一个外设接口。

  为便于模块的扩展,RTU母板总线定义如下:数据总线H-D0~H-D7;地址总线H-A0~H-A7;地址片选信号H-S0~H-S6;读写控制信号H-WR和H-RD;地址锁存控制信号H-ALE;中断服务请求控制信号H-INT0~H-INT3;复位信号H-RESET。

  使用处理器的如下总线信号驱动RTU母板总线:地址总线A0~A11、数据总线D0~D7、读使能控制信号nOE、写使能控制信号nWBE0、外设(I/O)地址片选信号nECS0,以及4根中断控制信号线nINREQ0~nINREQ3。

  1.2.1 总线驱动电路

  为兼容测控接口电路较常用的器件,母板总线按照5V的TTL电平设计。S3C4510B总线是3.3V的CMOS电平。

  处理器总线与RTU母板总线存在速度和电平上的差别,不能直接相连,它们之间需要一个总线驱动电路。

  总线驱动电路是主板模块的一部分。它实现处理器总线到RTU母板总线的接口扩展、电平转换和驱动。总线驱动接口电路如图2。

 采用双电源供电的双向总线缓冲器74LVX4245,实现处理器数据总线与RTU母板数据总线之间的电平转换和驱动。

  三八译码器U1,将2K字节地址空间译为8个地址片选信号,称为S0~S7,其中S0~S6由总线驱动芯片74LS244驱动后,作为RTU母板总线地址片选信号。[page]

  1.2.2 地址锁存信号ALE实现

  一些常用的芯片,如CAN总线控制器SJA1000、时钟芯片DS12887等,内部带一个地址锁存器,需要地址锁存信号ALE,才能实现接口。S3C4510B没有ALE信号,所以母板总线扩展ALE信号,才能实现这类器件的接口。

  将U1的一个地址片选信号S7取反,写数据到S7地址,可以模拟出ALE控制信号,并实现ALE的功能。

  1.2.3 RTU母板总线的地址和访问速度

  RTU母板总线作为处理器的一个外设,其地址和访问速度由处理器决定。

  S3C4510B总线统一编址。nECS0是外设地址片选信号,占外设地址空间起始的16K字节。

  nECS0接U3使能端,决定RTU母板总线的基地址和访问速度。S3C4510B控制寄存器EXTDBWTH第20位置1、21位置0,表示nECS0按8位方式寻址。寄存器REFEXTCON的低10位设为0x360,则nECS0的基地址是0x3600000。

  置控制寄存器EXTACON0为0x0fff,则S3C4510B对RTU母板总线的读写时间是7个CPU时钟周期。

1.3 基于RTU母板总线的模块扩展

  图3是扩展CAN总线通信模块的电路原理图。CAN总线模块以SJA1000为核心,通信数据经高速光电耦合器G1、G2隔离,82C250驱动,从接线端子J2连接到外部CAN总线。P1是1W的5V转5V的DC/DC电源模块。CAN模块使用H-S0作为片选信号,其基地址是0x3600000。

  图3给出了SJA1000与RTU母板总线的连接关系。SJA1000总线兼容TTL电平,数据总线和中断信号线有驱动能力,可以直接与母板总线接口。由图3可见,从RTU母板总线上扩展测控电路简单方便。

  基于母板总线的其它模块扩展方法类似。

  2 RTU软件设计

 

  μClinux从linux操作系统改进而来,适合运行在S3C4510B这种无内存管理单元MMU的处理器中。基于工控机-linux的RTU程序,可以很方便地移植到arm-μClinux设计的RTU中。
 

 RTU程序的开发,包括应用程序开发和驱动程序开发两部分,全部采用C语言编写。

  2.1 RTU应用程序调试

  使用JTAG仿真器工具和相应工具软件,将μClinux操作系统烧写到主板模块的Flash中。μClinux在主板模块上运行后,可以使用μClinux提供的工具软件在Flash上更新自身及应用程序。

  连接PC机的串口与主板模块的串口0。用Windows超级终端,与主板模块建立交互关系。将主板模块与PC机接入同一个局域网,配置合适的IP地址。

  使用文件传输服务工具FTP或TFTP,将PC机编译的μClinux应用程序下载到主板模块/ramdisk目录中,改为可执行属性后执行。应用程序中加入printf()函数,输出执行过程中的调试信息。

  2.2 JFFS2文件系统应用

  JFFS2(The Journalling Flash File System, version 2)是一种为嵌入式系统Flash存储文件而设计的文件系统。μClinux编译选项,加入JFFS2文件系统。将2MB的Flash分成mtd0和mtd1两个区,各为1MB。mtd0是从0地址开始的存储空间,用于存储μClinux操作系统镜像文件。mtd1用于存储应用程序。μClinux的/dev目录中,有字符型设备文件mtd0、mtd1和对应的块设备文件mtdblock0、mtdblock1。

  有了JFFS2文件系统支持,使用文件拷贝操作方法,即可将RTU的操作系统和应用程序在Flash上更新。RTU的开发和现场调试,可以脱离JTAG仿真器工具,给RTU开发和维护提供了方便。

  2.3 更新μClinux的步骤

  (1)用FTP传输操作系统文件IMAGE.ROM到/ramdisk/目录;(2)擦除mtd0分区:eraseall /dev/mtd0;(3)将IMAGE.ROM写入mtd0:cp/ramdisk/IMAGE.ROM/dev/mtd0。

  当提示操作完成后,复位主板模块即运行新的操作系统。由于μClinux操作系统在SDRAM中运行,更新操作系统过程中不能停电。

  2.4 应用程序在Flash上的更新与执行

  (1)安装mtd1分区:mount-t-jffs2 /dev/mtdblock1/mnt。此操作将mtd1分区按块设备方式安装在μClinux的/mnt目录中。在/mnt目录中添加的文件,存储在Flash中,不会因掉电而丢失。(2)将应用程序myapp下载到/ramdisk目录,然后cp /ramdisk/myapp /mnt。即完成了应用程序在Flash上的更新。(3)修改文件属性:chmod 755 /mnt/myapp。(4)执行文件:./mnt/myapp。
 

 μClinux启动后,读取并执行/proc/rc文件中的命令。要使myapp应用程序自动执行,在rc文件中,加入

  mount -t jffs2 /dev/mtdblock1 /mnt

  ./mnt/myapp

  系统启动后,自动安装mtd1分区,执行应用程序myapp。

  基于本文设计的RTU,连接到一个电网数据采集与监控系统,经试运行,性能稳定可靠。证明文中设计的RTU的原理是正确的。

关键字:ARM  μClinux  RTU

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/2015/0313/article_18738.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:嵌入式基于Proteus的ARM虚拟开发
下一篇:基于ARM的GSM远程监控系统的实现

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ARM投资ARM服务器芯片的厂商Ampere

基于ARM的服务器产品当中,有一些公司正在争夺尽可能多的市场,这些公司不仅要吸引x86客户,而且他们还有相互竞争以获得客户。他们中的大多数通过拥有高度专注和利基产品来针对一些关键的特定市场。Ampere是其中之一,现在该公司的投资者阵容中出现了非常稳固强大的成员ARM。Ampere由前英特尔总裁RenéeJames创立,由凯雷集团资助,自2018年10月开始提供eMAG系列处理器。该公司于2018年初购买了AppliedMicro的基于X-Gene ARM的服务器资产,并提供定制的基于ARM v8.0架构的32核芯片,采用TSMC 台积电16FF +工艺构建,运行频率为3.3 GHz。该芯片基于X-Gene II平台并进行了优化
发表于 2019-04-17
ARM投资ARM服务器芯片的厂商Ampere

ARM启动代码中_main 与用户主程序main()的区别

STM32启动代码主要是分配堆栈及设置向量表,然后跳转到__main函数。跳转具体到代码段部分如下:Reset_Handler   PROC                  EXPORT  Reset_Handler             [WEAK]                  IMPORT  __main 
发表于 2019-04-16

安谋科技结合中国市场需求自主研发基于ARM技术的IP与标准

2018年,ARM中国业务完成拆分,成立了由中方控股51%的合资公司。作为ARM公司在中国IP业务的总部,安谋科技(中国)有限公司将向总部设在中国的合作伙伴开展集成电路知识产权(IP)的授权与技术服务;并结合中国市场需求自主研发基于ARM技术的IP与标准,赋能中国智能科技创新。 ARM公司继2018年9月推出汽车安全强化处理器Cortex-A76AE之后,12月又推出了一款新的自动驾驶汽车芯片——Cortex-A65AE。它也是面向汽车电子市场的,主要针对7nm优化,其最大特点就是支持了SMT多线程,性能吞吐率比前代高3.5倍,预计2020年上市。 2019第四届ADAS与自动驾驶论坛于3月21-22日在上
发表于 2019-04-03
安谋科技结合中国市场需求自主研发基于ARM技术的IP与标准

Arm Pelion 物联网平台为全面部署物联网公共设施奠定基础

 Arm提供端到端物联网安全机制,以满足水电、天然气和水计量中从设备到数据的应用需求。  Arm 与各大智能电表以及先进仪表基础设施(Advance Meter Infrastructure;AMI)厂商合作,联手在Mbed OS 与Pelion 物联网平台的基础上为公共设施提供完备的物联网解决方案。 EDMI 运用Pelion物联网平台进行连接、管理、以及扩展各种智能仪表解决方案。 Arm宣布与EDMI合作,将Mbed OS 与Pelion 物联网平台整合到先进的智能仪表解决方案中,实现安全的设备连接、管理、固件升级,并为未来物联网公共设施的应用打下基础。 随着智能公共事业的快速
发表于 2019-04-01

Arm 力助联咏科技推进数字电视芯片

Arm宣布基于台积公司22纳米ULP技术的Arm POP IP受联咏科技(Novatek)采用,结合Arm big.LITTLE架构的核心优势,为数字电视市场的芯片发展开创全新局面。 当前,电视系统正迈入革命性的新时代。更高分辨率的视频、全面扩展的服务以及全新的AI驱动功能,将带动用户需求的提升与设备数量的增长。这让终端消费者为之振奋,但同时也为SoC芯片设计人员带来巨大的挑战。要在电视系统中增加上述功能,意味着芯片的复杂度也随之增加,因此工程团队不仅要努力在成本与功能之间找到平衡点,还需提供出色的用户体验,并缩短产品的上市时间。 Arm的合作伙伴联咏科技致力于提供种类众多的显示驱动IC以及多媒体SoC
发表于 2019-03-27

STM32与ARM启动代码比较分析

从ARM转到STM开发,开发工具也由ADS转到了Keil。借助STM的固件库,使得开发效率更加高效,比如你可以不用关心启动代码的具体实现,只需要专注于具体的应用代码,嵌入式开发也变得越来越“傻瓜”。此事好坏,暂且不论,来看看STM启动代码的特点,或者说相对于ARM的区别。通常的启动代码结构:1.  首先是中断向量表的定义.Ø         ARMARM代码在这块的代码为跳转语句,因为指令长度的限制,4个字节也就能放个跳转语就差不多了。通常两种实现方式:1.       B   
发表于 2019-03-24

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved