引言
目前,世界各地广泛在使用的还是 IPv4 网络,IPv6网络还只是停留在一些地方局部的试用;同时IPv6 强大的网络功能,对嵌入式系统、智能芯片等软硬件的要求也相对较高。所以基于IPv6 协议的嵌入式Internet 系统的研究与应用并没有为大多数人所关注。但是,随着的IPv4 协议渐渐被IPv6 协议所取代;随着嵌入式Internet 系统的不断自我完善;随着微控制芯片的迅猛发展。基于IPv6 协议的嵌入式Internet 系统将会成为互联网时代的新的发展和研究方向。
1. 嵌入式 Internet 系统
嵌入式微处理器作为一种智能器件已经给工业领域带来了巨大变化,随着控制精度、智能化程度等要求的提高,嵌入式微处理器完成任务也越来越多,其软件实现的功能也越来越复杂,单一任务的软件结构也随之变为多任务的。所谓嵌入式Internet 系统,就是普通的嵌入式系统具备了Internet 互联功能,它能够方便地连接到Internet 上,实现信息在互联网上的传递。早在1999 年6 月,中国计算机学会(China Computer Federation)举行的“嵌入式系统及产业化在中国的发展前景”研讨会中,专家们曾探讨了嵌入式系统在当今计算机工业中的地位及其网络化问题,并一致认为Internet 正由传统的PC 为中心的应用转向以嵌入式设备为中心的应用。同时网络专家也预测,将来Internet 上传输的信息将有70%来自于小型嵌入式系统。
今天,越来越多的消费型产品具有了Internet 特性。我们身边己经有了可以自动拨号进入Internet 获取音像资料的DVD 播放机、有了可以查看股票信息的网络冰箱、还有GPS(全球定位系统)等各种各样的嵌入式Internet 系统。
2. 系统的硬件设计
网络化数据采集系统,是利用嵌入式Internet 系统的透明接入技术来实现数据采集的网络化,它是由单片机系统、LED 显示控制器、A/D 和D/A 转换器、以太网络控制器等几部分组成,其硬件结构框图如图1 所示。
2.1 主控制器的扩展
系统的设计中,主控制器采用了 ATMEL 公司生产的AT89C55 微处理器。设计中把P0口用作数据16 位地址的低位地址复用口,P2 口用作16 位地址的高位地址,P1 口的P1. 0
用作以太网控制芯片RTL8019AS 的复位信号输入端,P1. 1, P1. 2 分别模拟IZC 总线用作EEPROM 数据存储器的时钟信号和数据输入输出线。引脚12(INTO)用来对以太网控制器RTL8019AS 的中断请求作响应。
74LS373 用作P0 口分时复用的16 位低位地址锁存器。外部数据存储器62256 内含32K的8 位存储单元,其片选引脚CS (20)接单片机的A15。62256 内部存储器寻址通过单片机的低15 位地址线AO^}A14。所以外部数据存储器62256 的单片机寻址范围为0000~7FFF。
AT89C55 没有I2C 总线接口,所以只能用单片机虚拟I2C 总线方式工作,由于总线上只有一个单片机作为主节点,因此系统设计为单主方式下的虚拟I2C 总线。在这种方式下,虚拟I2C 总线只有主发送和主接收两种操作, AT24C02 的写读程序如下:
① 写 AT24C02 子程序AT24C02_ W
NUMBYT:被传送字节数N 的存放单元、NUM:被传送字节数N, SUBADR:AT24C02 中要存放的数据首地址、VSDA:虚拟总线的数据线、VSCL:虚拟总线的时钟线、SLAW:写寻址
字节、MTD:发送数据缓冲区首地址。
AT24C02_W: NUMBYT. #NUM ;将被传送的字节数N 写入NUMBYT 中MOV SLA. #SLAW ;写地址送到SLA 中LCALL WRNBYT ;调用N 字节的写入子程序RET
② 读 AT24C02 子程序AT24C02_ R。
AT24C02 的指点地址的读和它的写有些不同,指点地址的读是要求在指定的字地址读出一个字节数据的操作,由于是要在指定的资地址,所以要先写一个字地址,然后重复起始状态,读入一个数据字节。
AT24C02 R:MOV MTD. SUBADR :将数据首地址送到发送数据缓冲区
MOV SLA. #SLAW :将写地址送到SLA 中
MOV NUMBYT,#1
LCALL WRNBYT ;调用N 字节的写入程序
MOV SLA,#SLAR ;将读地址送到SLA 中
MOV NUMBYT, #NUM ;从AT24C02 中读出子程序
RET
2.2 SAA1064 LED 驱动控制器
SAA1064 是PHILIPS 公司生产的I2C 总线接口的LED 驱动控制器件,它为双极型集成电路,有2X8 位输出驱动接口,可静态驱动2 位8 段LED 显示器或动态4 位8 段LED 显示器。AT89C55 的P1 口的P1. 1 和P1. 2 引脚模拟I2C 总线与SAA1064 的SCL 和SDA 连接,P1~P8, P9~P16 分别各自连接两个数码管的abcdefgh 端,CEXT 外接2. 7nF 电容,模拟引脚地址端ADR 引脚接地,器件可读地址为SLAR=71H,可写地址为SLAW=70H。
SAA1064 除了具有LED 驱动控制的写操作外,还有可以反映系统上电标志的读操作,但是,由于在本论文中只需用到SAA1064 的显示驱动控制功能,所以这里只讨论其写入操作。SAA1064 的写入数据操作格式为:
SLAW +SUBADR +COM +data 1+data2+data3+data4
其中SUBADR 为SAA1064 片内地址单元首地址,COM 为SAA1064 的控制命令,datal~data4 为动态显示方式的4 个LED 的共阴极段选码。
2.3 系统A/D 和D/A 转换
PCF8591 是PHILIPS 公司生产的具有I2c 总线接口的8 位A/D 和D/A 转换器。器件由单一的电源供电,COMS 工艺;有4 路A/D 转换模拟输入、1 路D/A 转换输出;A/D 转换为逐次比较型;输入输出部分有采样/保持电路;最大的转换速率与I2c 总线传输率有关;A/D 和D/A转换的基准电源由外部供给。PCF8591 也是采用典型的I2c 总线接口器件寻址方式。器件的地址为1001f 引脚地址为A2AlA0,方向位为R/W,因此它的器件地址及寻址字节为1001A2A1A0R/W。
AT89C55 的P1 口的P1. 1 和P1. 2 引脚模拟I2c 总线与PCF8591 的SCL 和SDA 连接,PCF8591 使用内部时钟电路,所以EXT 引脚接地,OSC 作为内部时钟输出端悬空,将A2, A1和AO 三个引脚接地,所以器件可读地址为SLAR=91H,可写地址为SLAW=90H。
PCF8951 的DAC 数据操作程序代码如下:
DAC 数据操作程序
PCF8951_ DAC: MOV MTD, #COM ;PCF8951 控制命令COM 入MTD
MOV R0, #MTD
INC RO
MOV @R0, A;D/A 转换数据入MTD + 1
MOV SLA, #SLAW;指向PCF8951 节点写地址
MOV NUMBYT, #2;写入两个字节COM 和A
LCALL WRNBYT
RET
2.4 以太网芯片的扩展
本系统网络芯片使用的是RTL8019AS芯片,RTL8019AS是台湾REALTEK公司生产ISA接口的通用以太网控制器。RTL8019AS 的硬件连接主要涉及三部分:第一部分是RTL8019AS工作模式及相关配置,其配置包括:RTL8019AS 的工作方式选择、总线方式、I/0 基址设置、中断线选择、传输介质选择、BROM(自举程序存储器)的容量和基址设置。第二部分是与MCU 的连接。第三部分是传输介质的连接,其电路图如图2 所示。
3. 系统软件设计
网络化数据采集系统的软件部分设计,大体可分为三个部分:底层以太网数据的收发、TCP/IPv6 协议功能的实现,以及用户应用软件的实现。其中,在用户应用软件部分的设计中主要是采用的是汇编语言来描述的,它主要完成数据采集系统的采集参数设置、数据的采集、数据的保存,以及数据的显示等,系统软件部分三个模块之间的关系结构图如图3 所示。
在网络化数据采集系统的设计中,底层网络数据的收发采用的是以太网为物理媒介,在Internet 的通明传输中采用的是TCP/IPv6 为通信协议来搭建的。系统在测控的局域网中,通过使用一台路由器来实现与外部Internet 的连接。这样做,一来保证了内部测量仪器、传感器等电子设备的安全性,对外部的访问可以进行过滤,防止了来自因特网的恶意破坏;二来,在网络通讯中的许多繁杂的工作不需要在现场设备端实现,现场设备的TCP/IPv6 协议栈设计的工作量可大大降低。一般只要实现基本的IPv6, ICMPv6 和UDP 就可以工作了。
此外,数据采集系统与远方控制站之间的通讯采用了客户/服务器模型,即数据采集系统为服务器,控制站为客户机。客户机向服务器发送数据传送请求、采集系统的参数设置等;服务器根据客户机的请求提供一些特定的服务,比如返回数据、某端口状态等,网络数据采集流程如图4 所示。
4. 总结
本文创新点:在 8 位嵌入式系统中实现IPv6 协议的网络互联。Internet 的IPv6 网络层协议目前还是一个比较新鲜的事物,并不为多数人所知,嵌入式系统在这几年的快速成长后,已成为时代的新宠,虽然它实现的方式和采用的方法各有千秋,但相对而言它已具备了比较完善的设计思想。论文将IPv6 协议引入到目前流行的嵌入式Internet 系统的研究热潮中,大胆使用性能优良但价格低廉的8 位MCU 作为网络协议实现的载体。