>
首页 » 业界动态 » SX52BD单片机实现嵌入式因特网终端的设计

SX52BD单片机实现嵌入式因特网终端的设计

作者:  时间:2007-12-08 14:17  来源:

摘要:本文介绍了用高速控制单片机sx52bd实现嵌入式因特网终端的设计,以及通信以太网控制器cs8900a的本地局域网应用接口实现网络远程控制或远程监控。

关键词:单片机;tcp/ip协议;虚拟外设,远程控制

本文于2005年5月16日收到。邹程:研究生,主要从事计算机嵌入式应用技术的学习与研究;魏银库:电子教研室主任,主要从嵌入式系统,图像处理方面研究与开发。

在对终端远程控制或远程监控中,如何对终端数据进行实时传输一直是热门的话题。本文利用sx52bd单片机的tcp/ip协议栈及太网控制器cs8900a成功实现了远程终端的因特网接入,满足数据远程传输的需求和实时性。

主要芯片介绍

·sx52bd是ubicom公司生产的一款risc指令集的高速单片机。程序存储器采用flash,片内容量为4096字节,重复写周期1万次以上;数据存储器是sram,片内容量为262×8位。sx52bd采用4个阶段传递(接收-解码-执行-写入),所以每一时钟周期执行1条指令。当最大操作频率达到100mhz时,指令以每10ns的时钟周期运行。通过串口或并口可以对芯片进行在线编程,芯片还有在线调试支持逻辑。该单片机的最大特点就是虚拟外设功能,即通过软件对i/o口进行灵活的配置, cpu通过执行虚拟软件模块直接驱动i/o口实现硬件外设功能(如uart、i2c、spi、caller id、fsk等)。

·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主要包括下面的函数和变量:

tcpapp1init():建立第一个tcp连接的初始化函数;

tcpapp2init():建立第二个tcp连接的初始化函数;

tcpapptxbytes():发送数据的字节数;

tcpapprxbytes():接收数据的字节数;

tcpapptxdata():发送数据;

tcpapprxdata():接收数据;

tcpapptxdone():发送完毕;

tcpapprxdone():接收完毕;

tcpapppassiveopen():被动tcp连接;

tcpappactiveopen():主动tcp连接;

sock1remoteip、sock2remoteip:tcp远程主机的ip地址;

myip:本机的ip地址;

tcb1localportmsb、tcb1localportlsb、tcb2localportmsb、tcb2localportlsb:本机的tcp连接端口;

tcb1remoteportmsb、tcb1remoteportlsb、tcb2remoteportmsb、tcb2remoteportlsb:远程主机的tcp连接端口;

发送数据或接收数据。接收数据时,从ip层来的数据经过状态机去掉tcp包头后再送到应用层;发送数据时,状态机在数据前面加上tcp包头再发送到ip层。接收数据时,需要用到的tcp api函数为tcpapprxbytes()、tcpapprxdata()和tcpapprxdone();发送数据时,需要用到的tcp api函数为tcpapptxbytes()、tcpapptxdata()和tcpapptxdone()。需要注意的是在建立了tcp连接后才可以发送数据。

应用层

应用层的实现,先把源文件下载到at24c256,,sx52bd通过智能信息表来来管理at24c256中的资源。当一个请求到来时,一个8位的无用信息对统一资源定位器进行运算(8位字符加运算),再将得到的数据乘以2,并把这个结果作为一个索引区中的一个值。在at24c256中建立了查找表,凭着这个值在e2prom中去查表,从而找到相应的资源。

应用

本文的英特网终端已应用到高速公路导引系统中,终端将高速公路上显业屏的信息及状态通过网络能够实时传送到监测中心计算机,监测中心软件通过gprs网络与终端进行双向通信。本文的终稿很好的满足了系统实时监测的需要。

参考文献:

1、 计算机通信网基础 电子工业出版社

2、 cs8900a产品数据参考手册

3、 http://www 211ic.com

相关推荐

飞思卡尔CEO:新战略初现成效 未来更关注中国市场

飞思卡尔  单片机  2013-04-28

飞思卡尔携手周立功单片机 共同拓展中国MCU市场

飞思卡尔  MCU  单片机  2012-12-19

英飞凌为提高XMC4000单片机生产率免费提供DAVE 3

英飞凌  单片机  2012-04-20

英飞凌XMC4500工业单片机现已量产供货

英飞凌  单片机  XMC4500  2012-03-19

ZLG成为Energy Micro中国区合作伙伴

周立功  Energy  Micro  单片机  2011-12-19

Microchip第100亿颗PIC单片机交付三星电子

微芯科技  单片机  PIC32  2011-09-21
在线研讨会
焦点