基于ARM微处理器及嵌入试Linux的串口网桥软硬件设计
许振山 晏寄夫 王富荣
西南交通大学电气学院 四川成都 610031
l、引言
在电力系统自动化控制及其他工业控制、民用设备如商场销售系统等领域,众多设备的对外通讯接口仍然是低速串口。串口由于其易用性、可靠性及相对于工控设备来说足够高的通信能力而长盛不衰。然而,串口有一个重大弱点就是传输距离短且无法与网络直接相连,造成设备无法实现远程控制及数据共享,而这些恰恰是实现工业控制高度自动化的必须条件。因此,要求设计一种使串口设备快捷方便地实现联网功能的装置,而且要求其成本低廉,我们称之为串口网桥或串口设备联网服务器。
2、串口网桥简介
我们设计的串口网桥是一个可以为RS-232串口设备提供联网能力的设备联网服务器。装置主要完成主机与串口设备间交流数据的过滤与转发功能,将RS-232信号转换成TCP/IP协议,使设备数据可以在I n t e r n e t或 Intranet上流通、共享。牢门网桥具体功能描述如下:
● (远程、本地)主机可以如操作本机串口一样通过TCP/1P网络对串口设备进行远程数据读取,资料处理和数据多点传输,即串口设备原有的主机方应用程序不需任何修改即可重新利用;
●支持主机以Web方式及Telnet方式登录修改配置;
●可在网桥装置上直接设置IP地址;
●自动检测10/100Mbps Ethernet网络;
●可同时操作8个串口设备。串口网桥装置广泛应用于工业设备联网自动化、门禁考勤管理、商场销售系统联网自动化、远程影像传输等众多领域,它的典型应用如图1所示:
3、系统硬件结构
串口网桥的硬件结构原理图如图2所示:
各主要模块基本组成描述如下:
●每微处理器MCU:采用SAMISUNG公司生产的ARM7TDMI内核S3C4510B处理器;
● 1 0/100M以太网接口:用一片RTL8201与S3C4510B片内的MAC控制器一起组成以太网接口电路,并通过网络隔离变压器与RJ45以太网口相连;
●FLASH存储器:采用一片39VFl60
FLASH存储器,大小为2M字节,用于存
放已调试好的用户应用程序、嵌入式
操作系统以及其他在系统掉电后需要
保存的用户数据等;
● S D R A M存储器:用两片HY57V641620HG并联构建32位的SDRAM存储器系统,共16M字节,可满足嵌入式操作系统及各种相对较复杂的算法的运行要求;
●JTAG接口:可对芯片内部的所有部件进行访问,通过该接口可对系统进行调试、编程等;
●多串口扩展:用两片STl6C554扩展出八个串口,以同时连接多台串口设备。
下面分别对装置硬件结构中的主要模块功能进行简要分析。
3.1ARM微处理器S3C4510B
串口网桥的系统是一颗韩国三星电子生产的S3C45l0B-16/32位RI 5C(精简指令集计算机)微控制器。该微控制器专为以太网通信系统的集线器和路由器而设计,具有低成本和高性能的特点。
S3C45l0B中内置了ARM公司设计的16/32位ARM7TDMI处理器,提供了8K字节的Cache(高速缓存)和以太控制器,内置2通道的HDLC(数据链路控制),2个UART(通用异步收发)通道,内置32位定时器和18个通用可编程I/O端口。S3C4510B内部采用32位系统总线,有I2C接口,还集成了中断控制器、DRAM/SDRAM控制器、ROM/SRAM和闪存控制器。以上功能特点均集成在此单芯片中,可大大减少系统成本。 软件方面,S3C45l 0B因内置ARSM7TDMI核,可以执行32位的ARM指令,也可执行16位的THUMB指令。
S3C4510B采用3.3V电压供电,208脚的QFP封装,操作频率达50MHz。
3.2 10/100M以太网接口电路
S3C4510B内嵌了一个以太网控制器,支持媒体独立接口(Media Independent Interface,UII)和带缓冲DMA接口(Buffered DMA Interface,BDI),可在半双工或全双工模式下提供10/100Mbps的以太网接入。在半双工模式下,控制器支持CSMA/CD协议,在全双工模式下支持IEEE802.3 MAC控制层协议。
但S3C4510B并未提供物理层接口,因此,需外接一片物理层芯片以提供以太网的接入通道。常用的单口10/l00Mbps高速以太网物理层接口器件主要有RTL8201,DM9161等,均提供MII接口和传统7线制网络接口,可方便地与S3C4510B相连。串口网桥的设计中使用RTL8201作为以太网的物理层接口。
3.3 Flash存储器接口电路
Flash存储器具有低功耗、大容量、擦写速度快.可整片或分扇区在系统编程(烧写)、擦除等特点,因而在各种嵌入式系统中得到了广泛的应用。作为一种非易失性存储器,Flash在系统中通常用于存放程序代码以及一些在系统掉电后需要保存的用户数据等。系统中用了一片39VFl60 FLASH存储器,其单片存储容量为16M位(2M字节),工作电压为2.7V~3.6V,采用48脚TSOP封装或48脚FBGA封装,16位数据宽度。
39VF160仅需单3V电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对Flash进行编程(烧写)、整片擦除、按扇区擦除以及其他操作。
3.4 SDRAM接口电路
SDPAM在系统中主要用作程序的运行空间,数据及堆栈。当系统启动
时,CPU首先从复位地址起始处开始读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度,同时,系统堆栈,用户堆栈以及运行数据也都放在SDRAM中。
要在系统中使用SDRAM.要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。S3C4510B及其他一些ARM芯片在片内具有独立的SDRAM刷新控制逻辑,可方便地与SDRAM相连接。
HY57V641620HG为16位数据宽度,单片容量为8M字节,为充分发挥32位CPU的数据处理能力,串口网桥设计中用两片HY57V641620HG并联构成32位的SDRAM存储器系统,共16M字节的SDRAM空间,可满足嵌入式操作系统及各种相对较复杂的算法的运行要求。
3.5 JTAG接口电路
JTAG(Joint Test Action Group)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路,可以通过专用的JTAG测试软件对芯片内部节点进行测试。目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP,FPGA器件等。JTAG接口常用于实现ISP(In-System Programmable,在系统编程)功能,如对FLASH器件进行编程等。通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁而高效的手段。
3.6多串口扩展
串口网桥提供八个标准RS232串口以连接多台串口设备。当然。S3C4510B不可能提供这么多个串口,因此我们需要自己扩展。
多串口扩展原理如图3所示。
STl6C554是集成异步通信元件,每片16C554中包含4个改良的16C350异步传输器件,每个通道有独立的16字节接收缓冲器和16字节发送缓冲器,可以达到更高的通讯速率而无需占用过多的CPU资源。
Maxim公司的MAX202芯片是标准的RS232电平转换器,是符合RS232通信标准的接口芯片,该芯片功耗低,集成度高,使用单一5V电源,每片有2个驱动器和2个接收器,具有2组接收和发送通道,接口电路简单,可靠性高,可实现TTL电平和RS232电平的直接转换。
串口数据信号通过MAX202转换成TTL电平,再通过STl6C554输出中断请求。八个串口的中断请求或起来产生IRQ信号INTREQ,经CPLD再与CPU的中断控制器相连。
设计中使用CPLD主要是为了解决多串口共享一个中断源时必然产生的中断重叠问题。为提高可靠性,系统中的八个串口均采用中断方式进行数据处理,并且八个串口共享一个中断源。在共用的中断服务程序中,程序按顺序对八个串口进行数据检测。若发现某个串口有数据,则进行相应处理。但这样一来,将会产生如下问题:例如,中断服务程序刚对串口l进行检测,没有发现数据,则转向串口2进行检测,发现串口2有数据,因此程序将进行串口2的数据处理,如果这时串口l发生中断请求,由于CPU无法保存该请求脉冲,串口l的中断请求将被忽略。
为了解决这个问题,可以在共享中断源后面加一个用CPLD实现的逻辑电路。该逻辑电路由两部分组成,部分是一个可寻址的寄存器INTEN,作为共享中断的允许位。第二部分是一个状态机逻辑电路,该电路共有三个状态:S 0是等待状态,该状态下INTEN=I,只要任何一个串口产生中断请求,CPU将马上响应该中断;Sl是中断服务状态,中断服务程序一开始执行,马上将INTEN设置为0,以屏蔽其他中断请求,退出中断服务程序时,再将INTEN设置为1,中断服务程序执行期间产生的串口中断请求由INTREQ锁存;S2为延时状态,延时50us,以确保中断服务程序完全退出。
状态机逻辑电路状态图如图4所示:
4.系统软件平台
4.5 uC1inux操作系统简介
Linux是一种很受欢迎的类UNIX操作系统,它并开放源代码,在个人计算机、服务器领域应用广泛。更重要的是,Linux采取模块化设计,实际应用中可以实现定制,因此Linux也适用于嵌入式领域。uClinux正是Linux的一个嵌入式版本,其内核的二进制映像文件可以做到小于512K。
uClinux针对无MMU(Memory Management Unit,内存管理单元)的处理器设计,支持多任务,具有完备的TCP/IP协议栈并支持多种网络协议。uClinux还支持多种文件系统,如ROMFS,NFS,FATl6/32。实际上,uClinux已经成功应用于路由器、网络摄像机、机顶盒、PDA等诸多领域。
另外,uClinux可移植性很强,用户通过重新配置、编译内核,可以很方便地将其移植到ARM,Dragon Ball、ColdFire、Power PC等多种处理器计算平台。当前uClinux主要提供2.0和2.4两个内核版本。
4.2软件开发调试方法
嵌入式Linux软件开发可以采用一种特殊的模式:主机--目标机模式进行开发,其中主机就是常用的PC或工作站,开发环境运行在主机上,主机的操作系统是通用的Windows或Linux系统。目标机就是嵌入式应用系统,它与主机间通过串行口、以太网或其他方式通信,从主机编译好的代码并运行。
利用GNU提供的交叉调试工具,开发人员可以在主机上调试目标机上运行的程序。在目标机上运行一个代理,以接收主机发送过来的命令和代码,并解释执行。通过调试器。开发者可以设定程序运行的起止位置和断点,同时可以查看和改变变量、寄存器和内存中的值,设置程序运行条件等,使开发人员感到如同在本机上调试程序一样方便。
4.3程序框图
串口网桥控制程序的主要功能就是实现对串口数据和网络数据的重组与转发。本地主机或远端主机上的应用程序以原有的操作本机串口的方式与连接在串口网桥上的设备进行信息交互,主机上的设备驱动程序将应用程序要求发送的串口数据以及对应串口号等辅助信息转换为网络数据包,发送到以太网上;串口网桥的控制程序接收到经以太网传送过来的数据包后,将数据包解包并提取其中的串口命令数据以及目标串口号等信息,而后重组成串口数据并发送到相应串口。控制程序处理串口设备上传给本地主机或远端主机的数据的方式与上述过程相反。
串口网桥软件结构如图5所示:
5,结束语
本文讨论了一个基于ARM微处理器S3C4510B及uClinux的串口网桥设备的软硬件设计,对S3C4510B芯片功能进行了简要描述,并探讨了基于该芯片的嵌入式Linux软件开发模式.事实证明,采用Linux作为嵌入式操作系统并充分利用GNU提供的开发工具包,降低了嵌入式系统开发的经济门槛,使更多的人能够掌握相关技术,代表了嵌入式系统开发的一种新方向。
[1]. RS-232 datasheet https://www.dzsc.com/datasheet/RS-232_584855.html.
[2]. ARM7TDMI datasheet https://www.dzsc.com/datasheet/ARM7TDMI_139812.html.
[3]. S3C4510B datasheet https://www.dzsc.com/datasheet/S3C4510B_589499.html.
[4]. 100M datasheet https://www.dzsc.com/datasheet/100M_2509927.html.
[5]. RTL8201 datasheet https://www.dzsc.com/datasheet/RTL8201_586322.html.
[6]. HY57V641620HG datasheet https://www.dzsc.com/datasheet/HY57V641620HG_390467.html.
[7]. ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.
[8]. DM9161 datasheet https://www.dzsc.com/datasheet/DM9161_264516.html.
[9]. FBGA datasheet https://www.dzsc.com/datasheet/FBGA_1457924.html.
[10]. RS232 datasheet https://www.dzsc.com/datasheet/RS232_585128.html.
[11]. 16C554 datasheet https://www.dzsc.com/datasheet/16C554_24747.html.
[12]. Maxim datasheet https://www.dzsc.com/datasheet/Maxim_1062568.html.
[13]. MAX202 datasheet https://www.dzsc.com/datasheet/MAX202_1089634.html.
[14]. TTL datasheet https://www.dzsc.com/datasheet/TTL_1174409.html.
[15]. CPLD datasheet https://www.dzsc.com/datasheet/CPLD_1136600.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。