“本文的英特网终端已应用到高速公路导引系统中,终端将高速公路上显业屏的信息及状态通过网络能够实时传送到监测中心计算机,监测中心软件通过GPRS网络与终端进行双向通信。本文的终稿很好的满足了系统实时监测的需要。
”作者:邹程,魏银库,刘忆辉
主要芯片介绍
·Cirrus公司的CS8900A是用于嵌入式设备的低成本以太局域网控制器。它的高度集成设计使外部器件大大减价。CS8900A包括片上RAM、10Base-T传输
和接收滤波器,以及带24mA驱动的直接ISA总线接口,设置好其内部各个寄存器的值,芯片就可以自动开通网络接口,由于使用RJ45连接器,所以利用E2023芯片把网络中的信号进行转换。
·AT24LC256是Atmel公司生产的一种串行256KB的 EEPROM存储器,它通过2根数据线与外界通信,兼容I2C总线接口,可分别设为硬件和软件写保护,高达10万次的擦写,40年以上的数据保护,主要用来存储网页信息。
硬件设计
硬件设计原理图如图1所示。
图1 硬件设计原理图
CS8900A有三种工作模式:I/O模式、存储器模式和直接存储器模式,默认为I/O模式,通过程序可变换成其它模式。CS8900A的三种工作模式各有优缺点,本设计中采用的是I/O模式。CS8900A共有8个16位的I/O口,这8个I/O口与片内的8个16位寄存器相对应。如图1所示,CS8900A采用8位的数据总线方式和SX52BD的RB口相连。地址线和SX52BD的RA口相连。复位后,SX52BD对CS8900A有唯一地址。
与24X256有关的电路,除了上述的和CS8900A连接的部分外,还有PROG接口、晶振和复位电路。其中,PROG接口用于编程和调试,用一个4引脚的接头引出OSC1、OSC2、VCC和地用于编程和调试,也可以通过串口接振荡器引脚进行在线串行编程。
CS8900A片内集成了一个10Mbps的以太网收发器,以及所有用于和局域网通信的模拟和数字电路,通过一个电磁隔离器E2023直接和局域网相连。RJ45为网络接头,可接10Mbps或100Mbps的网络集线器。
需要注意的是,在PCB布线时数字信号和模拟信号不能混合,信号线不能走在CS8900A下面,输出变压器离RJ45尽量近,传输线和接收线的终端匹配电阻和电容应尽量靠近CS8900A。
软件设计
本设计的软件部分分为四部分,主要实现网络协议栈的四层结构:数据链路层、网络层、传输层和应用层
数据链路层
数据链路层的实现主要由SX52BD控制网卡芯片CS8900来完成。系统工作时,SX52BD首先对网卡芯片进行初始化,即写寄存器LINECTL、RXCTL、RCCFG、BUSCT。发数据时,写控制寄存器TXCMD,并将发送数据长度写入TXLENG,然后将数据依次写入PORT0口,网卡芯片将数据组织为链路层类型并添加填充位和CRC校验送到网络。
网络层
SX52BD100的协议栈中,网络层的实现就是执行IP协议包,在发送时,要把发送出去的消息进行IP打包,即加上IP包头,使之符合IP数据包的格式发送到物理层;将接收到的来自物理层的数据包进行IP解包,即去掉包头,送到TCP层。
传输层
传输层的实现,即对TCP层的实现。在SX52BD的协议栈中,对TCP层的编程通过TCP API(应用程序接口)来进行。TCP的API主要包括下面的函数和变量:
发送数据或接收数据。接收数据时,从IP层来的数据经过状态机去掉TCP包头后再送到应用层;发送数据时,状态机在数据前面加上TCP包头再发送到IP层。接收数据时,需要用到的TCP API函数为TCPAppRxBytes()、TCPAppRxData()和TCPAppRxDone();发送数据时,需要用到的TCP API函数为TCPAppTxBytes()、TCPAppTxData()和TCPAppTxDone()。需要注意的是在建立了TCP连接后才可以发送数据。
应用层
应用层的实现,先把源文件下载到AT24C256,,SX52BD通过智能信息表来来管理AT24C256中的资源。当一个请求到来时,一个8位的无用信息对统一资源定位器进行运算(8位字符加运算),再将得到的数据乘以2,并把这个结果作为一个索引区中的一个值。在AT24C256中建立了查找表,凭着这个值在E2PROM中去查表,从而找到相应的资源。
应用
本文的英特网终端已应用到高速公路导引系统中,终端将高速公路上显业屏的信息及状态通过网络能够实时传送到监测中心计算机,监测中心软件通过GPRS网络与终端进行双向通信。本文的终稿很好的满足了系统实时监测的需要。
分享到:
猜你喜欢