基于ARM微处理器及嵌入试Linux的串口网桥软硬件设计
● 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的中断请求将被忽略。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码