基于SX52BD单片机的以太网控制应用
扫描二维码
随时随地手机看文章
1引言 随着internet应用日益普及,信息共享的程度不断提高,如何通过internet共享以单片机应用系统为中心的小型嵌入式设备的信息,成为当今电子界的热门话题。传统的internet应用是以pc为中心,现在的internet应用正在转到以嵌入式设备为中心。据网络专家预测,将来在internet上传输的信息中,有70%的是来自小型嵌入式系统 [1]。 利用单片机实现嵌入式互联网方案的技术难点是如何利用单片机本身有限的资源对信息进行tcp/ip协议处理,使之变成可以在互联网上传输的ip数据包。从解决这个技术问题出发,目前普遍存在以下两种方案 [2]: (1)“pc网关+专用网”方案:采用专用网络(如rs232,rs485,can bus等)把一小批单片机连接在一起,然后再将专用网络接到一台 pc上。这台pc起网关的作用,将专用网络上的信息转换为tcp/ip协议数据包,然后发到网上实现信息共享。这个方案可以连接多种单片机,但存在以下缺点:它依赖pc机作为网关进行协议转换在多个单片机系统分散的情况下,专用网络布线极为不便;需要在pc机上安装专门的协议转换软件,而这些软件通常是由第三方软件商提供,费用较高。 (2)“32位mcu+rtos”方案:采用32位高档单片机,在rtos(实时多任务操作系统)的平台上进行软件开发,在嵌入式系统中实现tcp/ip 的协议处理。由于采用高档单片机,这个方案可以完成很多复杂的功能。它的缺点是:高档单片机价格较高,开发周期较长;并需要购买昂贵的rtos开发软件,对开发人员的开发能力要求较高。 鉴于上述两种方案的缺点,提出了“mcu+虚拟软件包”的方案,即采用ubicom公司的8位超高速单片机sx52bd,通过用软件固化tcp/ip协议来实现互联网接入功能。由于sx52bd单片机的速度极高,能够实现实时多任务操作,可以在 mcu执行数据采集和控制功能的同时把数据打包并传送到互联网上。其优点很明显:用8位微控制器通过isp接入互联网,不需要使用pc机或高档单片机;硬件电路相对简单,系统成本低;由于ubicom公司免费提供用于互联网处理的软件模块,可以大幅度的缩短开发周期并降低开发成本。 2 具体应用方案 2.1 基于sx52bd的web服务器方案
基于sx52bd的web服务器的硬件平台如图1
2.2 主要芯片介绍
(1)sx52bd:sx52bd 是ubicom公司生产的一款risc指令集的单片机,片上带有4k×16 位的flash存储器和256×12位的sram,具有在线系统编程调试功能。由于采用cpu并行流水线方式及单时钟周期指令,在50mhz晶振驱动下指令执行速度可达50mips。该单片机的最大特点就是虚拟外设功能,即cpu通过执行虚拟软件模块直接驱动普通i/o口实现硬件外设功能(如uart、i 2c、spi、caller id、fsk等)。 (2)rtl8019as:rtl8019as是realtek公司生产的一种全双工以太网控制器。它内置16kb的sram,收发可同时达到10mbps的速率,支持ethernet ii和ieee802.3、 10base5、10base2、10baset。 (3)at24c256:at24lc256是atmel公司生产的一种串行256kb的 eeprom存储器,采用cmos工艺,通过2根数据线和外界通信,兼容i 2c总线接口,可分别设为硬件和软件写保护,10万次的擦写,40年以上的数据保护。在此方案,主要用来存储web服务器的网页信息,它可以处理web页面、图象文件、pdf文档记忆其他文件。 2.3 internet协议栈internet协议栈是sx52bd虚拟外设的一个重要的实现,是基于 sx52bd的应用系统实现与internet互联的基础。sx52bd可以运行流行的各种互联网协议栈,如http、smtp、pop3、tcp、udp、icmp、ip及ppp,还可以实现ethernet (ieee802.3)协议。 由于以太网作为物理非常普及,目前大部分的局域网都使用以太网。图2所示为用汇编语言实现的以太网协议栈 [3,4],即 tcp/ip软件的四层抽象分层:最底层,是专门用来传输ip包的物理层,即 nic设备驱动程序;向上一层,是网络层,负责数据在网上的端到端传输;再向上,是我们熟悉的 tcp,udp的传输层,一般的应用程序都是建立在传输层上的,例如web服务、简单邮件服务;在应用层,用户可以选择http,smtp,dhtp中的任意一种作为单片机系统与internet远程管理终端之间的通信协议,例如,用http 协议可以构造web服务器,用smtp协议可以构造邮件服务的客户端。
对应图1所示的硬件平台,其运行的协议栈结构如下:应用层 http;传输层 tcp;网络层 ip/icmp;物理层 ethernet nic driver。 2.4 工作流程和软件设计