基于ARM微处理器及嵌入试Linux的串口网桥软硬件设计
准的命令序列,可对Flash进行编程(烧写)、整片擦除、按扇区擦除以及其他操作。 3.4 SDRAM接口电路 SDPAM在系统中主要用作程序的运行空间,数据及堆栈。当系统启动 要在系统中使用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和
时,CPU首先从复位地址起始处开始读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度,同时,系统堆栈,用户堆栈以及运行数据也都放在SDRAM中。
- 基于Crotex-M3及μC/OS-II的自动智能防盗窗设计(11-30)
- ARM·微处理器的编程模型(11-24)
- ARM应用系统开发详解 第2章 ARM微处理器的编程模型(11-20)
- ARM应用系统开发详解:第3章 ARM微处理器的指令系统(11-20)
- ARM微处理器的指令集概述四——MOV和LDR的区别(11-20)
- ARM微处理器的指令集概述二——ARM应用系统开发详解笔记(11-20)