江守亮,胡鹏飞
(西南交通大学电气工程学院,1.硕士研究生;2.副教授、硕士生导师,四川 成都 610031)
目前,我国正处于高速铁路大发展的时期。实现高速需要克服许多技术难点。因此,伴随计算机技术的发展,列车牵引、供电、制动系统,以及主动控制都广泛应用了计算机技术,导致车载计算机设备数量的增加。为了实现大量设备的信息交换与共享,进而实现列车安全运行、远程故障诊断和维护,引进了列车控制网络。目前,我国尚无自主知识产权的列车网络技术,必须大力攻关。但组建网络系统,需要各个网络接口的支持。ARCNET作为其中的一种现场总线,已在日本的高速列车中使用,我国南车集团四方车辆股份公司引进日本川崎的高速动车组(CRH2)也使用ARCNET技术〔1〕。为此设计用于组建环形ARCNET网络的网络接口。
ARCNET(Auxiliary Resource Computer Network)是一种基于令牌传递(Token Passing)协议的现场总线。最初是由美国Datapoint公司在20世纪70年代末作为办公自动化网络发展起来的。该现场总线具有速度快、确定性、可扩展性和支持长距离传输等特点,非常适合过程实时控制。近年来被广泛应用在各种自动化领域,是一种理想的现场总线技术〔1〕。
ARCNET是一个开放标准协议,1999年成为美国国家标准 ANSI/ATA-878.1〔1〕。从 OSI参考模型来看,ARCNET位于ISO/OSI 7层网络体系中的数据链路层和物理层。单个ARCNET子网最多可有255个节点,支持点对点的定向消息和点对多点的广播消息。ARCNET支持总线型、星型以及分布式星型拓扑结构。ARCNET传输速率为2.5 Mbit/s,传输介质有同轴电缆、双绞线、光纤,使用光纤时的新型ARC⁃NET plus速率可达到100 Mbit/s。ARCNET采用令牌传递协议,任何节点都不能独占网络,不存在竞争问题,并且在传递时间上可预测,不存在网络阻塞。内置16位CRC校验、出错重传机制,由于数据链路层协议固化在控制器芯片内部,因此ARCNET不用软件就能自动完成诸如错误检测、流量控制以及网络配置功能。
ARM作为嵌入式开发、广泛采用的一类处理器,其家族成员包括ARM7,ARM9,ARM10,ARM11等。该设计采用的是ARM9系列微处理器。ARM9系列微处理器包含ARM920T和ARM922T 2种类型,是以ARM9TDMI为原型发展而来的,其中ARM920T内置8 KB指令和数据Cache,ARM922T内置18 KB的双Cache。二者均内置全性能的内存管理单元(MMU)和高速AMBA总线接口。AMBA总线是一个开放标准,已成为SOC构建和IP库开发的实际标准。AMBA先进的高性能总线AHB接口现已被所有新的ARM核支持,提供开发全综合设计系统〔2〕。
ARM9系列微处理器在高性能和低功耗特性方面提供最佳性能,支持32位ARM指令集和16位Thumb指令集,采用5级整数流水线,提供1.1MIPS/MHz的哈弗结构,支持32位的高速AMBA总线接口。同时,提供全性能的MMU,支持Windows CE、Linux、Palm OS等多种嵌入式操作系统。该设计所采用的操作系统为源码开放的嵌入式Linux操作系统。
ARCNET网络接口硬件设计包括2个部分,分别是设计能够实现操作系统运行的基本硬件电路和实现网络接口功能的协议控制器电路。
2.1 基本硬件电路设计 基本硬件电路也就是人们常说的最小系统硬件电路。它的基本功能是运行操作系统,是网络接口能够工作的核心,实现电源供应、电路复位、网络接口时钟、程序的FLASH存储与RAM运行及JTAG接口。设计电路如图1所示。
2.1.1 电源模块设计 整个网络接口采用12 V变压供电。由于ARM S3C2440,FLASH及SRAM等芯片需要采用3.3 V供电,ARM核需要1.25 V稳定电压,其他外围芯片需要采用5 V供电,所以网络接口采用电压转换芯片LM2576实现12 V向5 V转换,采用LM1117实现5 V向3.3 V转换,采用MAX8860芯片实现3.3 V向1.25 V转换。
2.1.2 复位电路设计 在网络接口中,复位电路主要实现网络接口的上电复位和网络接口在运行时用户的按键复位功能。复位电路可由简单的RC电路构成,也可以使用其他相对复杂但功能更完善的电路。
网络接口复位电路采用MAX811芯片实现网络接口复位。MAX811是低功耗微处理器管理电路,用于在微处理器和数字电路供应中,提高网络接口稳定性能。
2.1.3 时钟电路设计 S3C2440微处理器可以由外部时钟提供,也可以由外部振荡器组成,根据OM〔3:2〕引脚来进行选择。该网络接口选择OM〔3:2〕均接地的方式,即采用外部震荡器提供时钟。时钟电路如图2所示。图中,X2为12 MHz晶振,C5、C6为15 pF电容。
2.1.4 JTAG接口电路 JTAG是Joint Test Action Group的简称,主要实现芯片内部测试与对网络接口进行仿真、调试。JTAG是一种嵌入式调试技术,它在芯片内部封装了专门的电路测试访问口(TAP),通过专门的JTAG测试工具对内部节点进行测试。标准的JTAG接口是4线:TMS,TCK,TDI,TDO,分别为测试模式选择、测试时钟、测试数据输入、测试数据输出。JTAG还常用于系统编程ISP,如对FLASH器件进行编程等。
2.1.5 外围FLASH及SRAM接口电路 FLASH存储器是一种可在系统中进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程或擦除等特点,并且可由内部嵌入的算法完成对芯片的操作。网络接口存储芯片采用K9F1208(64 MB 8位数据线)FLASH芯片以及2片K4S561632C(32 MB)SDRAM。
2.2 协议控制器电路设计 协议控制器电路主要由数字温度传感器、RS485接口电路、ARCNET协议芯片电路、LED与按键等4部分组成。该电路的最终目标是为环形ARCNET组网提供网络节点及实现温度采集与控制。设计电路如图3所示。
2.2.1 数字式温度传感器 采用DS18B20数字式温度传感器采集温度。DS18B20数字温度计提供9位(二进制)温度读数,显示所采集的温度。信息经过单线接口输入DS18B20或从DS18B20输出,因此从主机CPU到DS18B20仅需1条数据收发线及地线。DS18B20的电源可以由数据本身提供而不需要外部电源。由于每一个DS18B20在出厂时已经给定了唯一的序号,因此任意DS18B20可以存放在同一条单线总线上。该序列号允许在许多不同的地方放置温度敏感器件。DS18B20的测量范围从-55~+125℃,增量值为0.5℃,可在1 s(典型值)内把温度变换成数字。
每一个DS18B20包括1个唯一的6位长的序号,该序号值存放在DS18B20ROM(只读存储器)中。开始8位是产品类型编码(DS18B20编码均为10H)。接着48位是每个器件唯一的序号。最后8位是前面56位的CRC码。DS18B20还有2个8位贮存RAM,是用于存储测得的温度值的,编号为0和1号。1号存放温度值的符号,如果温度为负,则存储值全为1,否则全为0。0号存放温度值的补码,LSB的“1”表示0.5 ℃。
2.2.2 RS485接口电路 RS485为半双工平衡差分信号,对多站互联是十分方便的。RS485标准允许并联32台接收器。总线两端接匹配电阻(100Ω左右),驱动器负载为54Ω。驱动器输出电平在-1.5 V以下时为逻辑“1”,在+1.5 V以上时为逻辑“0”。接收器输入电平在-0.2 V以下时为逻辑“1”,在+0.2 V以上时为逻辑“0”。RS485传输速率最高为10 Mbit/s,最大电缆长度为1 200 m〔3〕。
2.2.3 ARCNET协议芯片电路 该设计采用COM20020网络控制协议芯片,芯片封装了令牌传递ARCNET协议,支持微控制接口的自动检测。芯片内含2 KB双口RAM、最小逻辑与微控制器接口、软件编程节点ID、电源诊断、CMOS,3.3 V供电。并支持配置协议,工作温度在-40~85℃。该芯片由28脚封装,支持多种微处理器(MCU)和收发接口,时钟频率为20 MHz。由于电路传输需要一定的驱动,故电路物理收发接口采用HYC9088芯片。COM20020芯片驱动电路如图4所示。
2.2.4 LED与按键模块 作为人机交互的主要部件LED与按键,可以方便地对当前设备温度进行查看与设置。LED的主要功能是显示当前温度,而按键可实现温度的本地设置。
上述硬件平台的搭建,为软件程序提供了可靠的运行平台。为实现ARCNET网络接口的基本通信功能,软件设计主要包括操作系统的移植、设备驱动程序的开发及应用程序开发3部分。
3.1 操作系统移植 Linux为该设计使用的操作系统,需要对其进行移植。移植Linux的引导启动流程如图5所示。
引导加载程序是嵌入式系统加电后运行的第一段代码。在嵌入系统中,由Boot Loader来完成整个系统的加载与启动任务。在嵌入式系统中,系统复位与上电通常从固定地址启动,而这个地址一般都存放Boot Loader启动程序。Boot Loader就是在操作系统内核运行之前运行的一段小程序,可以初始化硬件设备、建立内存映射,将系统的软硬件带到一个系统内核启动的合适状态。
经过Boot Loader引导程序后,系统开始加载内核,然后启动内核并初始化外设,最终运行应用程序,实现人机交互。
3.2 设备驱动程序 设计主要实现COM20020协议芯片的初始化并开发收发驱动程序、LED的显示驱动程序以及温度采集系统的驱动电路。
系统调用是操作系统内核与应用程序之间的接口,设备驱动程序是机器硬件与操作系统之间的接口。它的主要功能:对设备初始化和释放;把数据从内核传送到硬件并从硬件读取数据;读取应用程序传送给设备文件的数据和回送应用程序请求的数据;检测和处理程序出现的错误。
3.3 应用程序 在设计中,应用程序主要实现温度采集算法与ARCNET网络数据收发。根据底层驱动程序提供的接口,通过基本的主函数调用驱动接口函数,打开底层硬件设备,读取温度数据并存储。通过打开网络协议控制设备,进行ARCNET网络中温度数据和模拟开关信息的传输,并接收网络下发过来的控制命令。通过上述步骤即完成了网络接口基本应用程序的开发。
用ARM设计的ARCNET网络接口,在实践中完全通过验证。可以很好地工作在各种复杂环境下,采集与调控环境温度。作为环形ARCNET网络中的中间节点,通过双绞线接入网络,实现了基本的数据通信,将温度传感器采集到的数据在网络上传输。该设计可为我国列车网络组网接口设计提供一定的技术参考。
〔1〕倪文波,王雪梅.高速列车网络与控制技术〔M〕.成都:西南交通大学出版社,2008.
〔2〕范书瑞,赵燕飞,高铁成.ARM微处理器与C语言开发应用〔M〕.北京:北京航空航天大学出版社,2008.
〔3〕张刚毅,彭喜源.MCS-51单片机应用设计〔M〕.哈尔滨:哈尔滨工业大学出版社,2004.