uC/OS的嵌入式SMI网络转换器设计与应用 04
![Rank: 8](images/default/star_level3.gif) ![Rank: 8](images/default/star_level3.gif)
- UID
- 872238
|
![](http://images.eccn.com/silabs/silicon_chip_980x60_202203.jpg)
uC/OS的嵌入式SMI网络转换器设计与应用 04
用单片机作为处理器的设计相比,系统运行效率提高。通过将RTL8019AS的65脚JP接高电平以选择跳线工作方式,即RTL8019AS的I/O和中断由跳线决定,不需外扩EEPROM 93C46芯片存储信息来控制RTL8019AS的I/O和中断,减少了连线,提高了高频电路的稳定性。RTL8019AS工作在跳线模式时,其基地址为0X300。由于RTL8019AS工作电源是5V,而LPC2210的I/O电压是3.3V,因此在总线连接上串接470Ω的保护电阻。
系统软件设计与实现
引入RTOS
光纤收发器数据采集要求实时性比较高,若采用传统的前后台设计方法,会过于复杂,且实时性不能保证。采用实时操作系统RTOS可以解决这个问题。μC/OS-II操作系统是一种源代码公升的RTOS,具有代码短小精悍、简单易学的特点,对本设计来说是一个理想的选择。
TCP/IP协议的选择与裁减
为使SMI转换器具有以太网接入功能,必须在arm处理器中嵌入TCP/IP协议。参考开放系统互连(OSI)模型,在ARM中嵌入的TCP/IP协议采用简化的四层模型,即链路层、网络层、传输层、应用层。根据实际需求,结合arm微处理器的处理能力,设计中对完整的TCP/IP协议进行了全方位裁减。链路层由控制同一物理网络上不同机器间数据传送的底层协议组成,RTL8019AS的驱动程序就是在该层实现的;在网络层,对于ARP包只响应ARP请求,取消了RARP,只维护最简单的一个IP地址与MAC地址的映射Cache表,定时刷新;对传输层,考虑到所设计的系统数据传输安全性,设计中选用TCP协议;对应用层,裁剪掉HTTP协议,通过将控制界面设置在上位机上来代替其功能。
通过上述裁剪,就得到一个适用的TCP/IP协议。把裁减后的TCP/IP协议嵌入到操作系统μC/OS-II中,并提供API接口函数供应用程序调用,使得arm可以快速无冲突地收发网络TCP数据包,符合工业测控系统对实时性和可靠性的要求。
关键问题的解决
当SMI串口和以太网进行双向通信时,如果双方的数据传输率处于同步状态,即接收方速率等于发送方速率,系统能够即时地将数据进行转发。但大多数情况下,收发双方的数据传输速率并不一致,相对于以太网来说,串口是一个慢速连接,可能导致丢失数据。因此,在系统中必须定义循环队列作为数据收发的缓冲区。在本系统中,定义了两个1024字节的循环队列作为数据收发的缓冲区,一个是串口接收缓冲区,另一个是以太网接收缓冲区。以太网的接收是通过中断触发的,相对而言,串口和以太网的发送任务优先级较低,接收的数据并不能立即转发出去,而是暂存在循环缓冲区中。如图4所示,Head和Tail分别指向队列的头部和尾部,当Head=Tail时表示队列空,(Head+1)Mod 1024=Tail表示队列己满,空闲缓冲区的大小也可通过Head和Tail指针计算。 |
|
|
|
|
|