单片机IP技术在智能小区系统中的应用
扫描二维码
随时随地手机看文章
1. 引言
住宅小区智能化(或称为"智能小区")的概念是本世纪90年代引入国内的,它是以家庭智能化为核心,包括远程抄表,家庭防盗报警,医疗救助,家电控制等功能,采用系统集成方法,建立一个沟通小区内部住户之间、住户与小区综合服务中心之间、住户与外部社会的综合信息交互系统,从而为住户营造一个安全、舒适、便捷、高效的居住和生活环境。现行的智能小区系统多是以RS485、CAN总线、LONWORKS等总线进行联网,布线复杂,冲突多,系统不够稳定且涉及到消防安全及成本的考虑。而以太网实现联网,布线简单,且实现也比CAN、LONWOKS等更便宜,也更有利于小区智能化产品的兼容和统一。在当今计算机技术及信息技术不断发展的情况下,以及人们对家居生活的需求及观念上的变化,电话、电视、计算机三网有合一的趋势,将来智能小区的发展必定是以太网的天下。所以针对当前行业的发展情况和趋势,对于基于IP的以太网家庭智能终端的研究顺应时代发展的潮流,有一定的现实意义。
2. 智能小区系统结构
本文中提出的小区智能系统由小区计算机管理系统、网络交换设备、家庭智能终端(CDT)三个主要部分组成,网络结构如图1所示:
图1 系统网络结构图
图2 用户终端结构图
小区管理系统是指安装在小区管理中心,完成全小区内用户数据终端数据采集和处理的计算机系统,对于用户数较多的系统,可以采用客户机/服务器(C/S)结构。小区管理系统分为监控微机(Client)和服务器(Server)两个部分,客户端只作数据采集使用,数据的处理在服务器端进行。小区管理系统的功能包括:显示用户终端的上网状态,接受并显示住户报警,读取水电气表数据并产生报表,报警日志处理,系统管理等。用户数据终端:用户终端用来与管理系统通讯、并完成对各种计量信号和报警信号的采集、应答主机的呼叫、回答上网状态,并提供操作面板欢迎用户查询。
3. 用户终端硬件结构及RTL8019的配置
3.1用户终端结构硬件结构图如图2所示:
系统由两块单片机组成,一块负责五表读数、遥控器及安防信号的采集工作,另一块负责驱动RTL8019通讯,并响应键盘及驱动液晶显示。两块MCU之间通过串口通讯。
3.2 RTL8019的配置
RTL8019是一款高度集成的以太网控制芯片,它有两种operation mode:一种是跳线模式jumper,一种是非跳线模式 jumperless,后者也支持Plug and Play。在单片机中一般都采用跳线模式选项。I/O端口的基地址由单片机和8019之间的接线决定,P2.6=8019CS,低电平有效,则 IO_BASE_ADDRESS=0xBF00。此外8019还具有8个IRQ接口,本系统中没用到IRQ,采用查询方式。
8019输入输出地址共32个,地址偏移量为00H--1FH(对应于BF00H--BF1FH)。
其中00H--0FH共16个地址,为寄存器地址,寄存器分成4页PAGE0--PAGE3,与NE2000兼容的寄存器只有3页(Page0-Page2),为了保证驱动程序对所有Ne2000的网卡有效,不要去操作第四页的寄存器。
10H--17H共8个地址,为DMA地址。
18H--1FH共8个地址,为软复位端口。8019的硬件复位很简单,只需在上电时对RSTDRV输出一高电平就可以了。8019复位的过程将执行一些操作,比如将93c46读入,将内部寄存器初始化等,至少需要2毫秒的时间。推荐等待更久的时间之后才对网卡操作,比如100毫秒之后才对它操作,以确保完全复位。
ICS16B=LOW时采用8位DMA操作模式,上面的地址中只有18个是有用的: 00H--0FH共16个寄存器地址。10H DMA地址(10H--17H的8个地址是一样的,都可以用来做DMA端口,只要用其中的一个就可以了)。1FH 复位地址(18H到1FH共8个地址都是复位地址,每个地址的功能都是一样的,只要其中的一个就可以了,但实际上只有18H、1AH、1CH、1EH这几个复位端口是有效的,其他不要使用,有些兼容卡不支持19H、1BH、1DH等奇数地址的复位)。
4. 网卡驱动及TCP/IP协议栈的简化
从程序员的角度来说,对8019的操作是比较简单的,驱动程序只需要将要发送的数据按一定的格式写入芯片并启动发送命令,8019会自动把数据包转换成物理帧格式在物理信道上传输。反之,8019收到物理信号后将其还原成数据,按指定格式存放在芯片RAM中以便主机程序取用。简言之就是8019完成数据包和电信号之间的相互转换:数据包<===>电信号。以太网协议由芯片硬件自动完成,对程序员透明。驱动程序有3种功能:芯片初始化、收包、发包。
4. 1发送子程序
bit Transmit(void)
{
CardCopyDown();
XBYTE[IO_BASE_ADDRESS + NIC_COMMAND] = CR_NO_DMA|CR_STOP|CR_PAGE0;//停止8019
XBYTE[IO_BASE_ADDRESS + NIC_INTR_STATUS] = 0xFF;//屏蔽中断
XBYTE[IO_BASE_ADDRESS + NIC_XMIT_START] = XMIT_START;//设置发送开始地址
XBYTE[IO_BASE_ADDRESS + NIC_XMIT_CONFIG] = TCR_NO_LOOPBACK;//设置为一般模式
XBYTE[IO_BASE_ADDRESS+NIC_DATA_CONFIG]= DCR_FIFO_8_BYTE|DCR_NORMAL|DCR_BYTE_WIDE;//设置8位DMA模式
XBYTE[IO_BASE_ADDRESS + NIC_XMIT_COUNT_LSB] = 100;//设置发送字长
XBYTE[IO_BASE_ADDRESS + NIC_XMIT_COUNT_MSB] = 0;
XBYTE[IO_BASE_ADDRESS + NIC_COMMAND] = CR_START|CR_XMIT|CR_PAGE0;//启动8019
return (TRUE);
}
4.2接收子程序
void Receive(void)
{
XBYTE[IO_BASE_ADDRESS + NIC_COMMAND] = CR_NO_DMA|CR_STOP|CR_PAGE0;//停止8019
Wait_xus();
XBYTE[IO_BASE_ADDRESS + NIC_INTR_STATUS] = 0xFF;//屏蔽中断
XBYTE[IO_BASE_ADDRESS+NIC_DATA_CONFIG]= DCR_FIFO_8_BYTE|DCR_NORMAL|DCR_BYTE_WIDE;//设置8位DMA方式
XBYTE[IO_BASE_ADDRESS + NIC_RMT_ADDR_LSB] = 0x00; //设置目的地址和长度
XBYTE[IO_BASE_ADDRESS + NIC_RMT_ADDR_MSB] = PAGE_START;
XBYTE[IO_BASE_ADDRESS + NIC_RMT_COUNT_LSB] = 56;
XBYTE[IO_BASE_ADDRESS + NIC_RMT_COUNT_MSB] = 0x00;
XBYTE[IO_BASE_ADDRESS + NIC_PAGE_START] = PAGE_START; //设置接收开始地址
XBYTE[IO_BASE_ADDRESS + NIC_PAGE_STOP] = PAGE_STOP; //设置接收缓冲区长度
XBYTE[IO_BASE_ADDRESS + NIC_BOUNDARY] = BOUNDARY;//设置接收边界
Wait_xus();
XBYTE[IO_BASE_ADDRESS + NIC_RCV_CONFIG] = RCR_BROADCAST;//设置接收配置
}
4.3协议的精简
单片机中TCP/IP的实现与PC机不同,在PC里可支持比较完整的TCP/IP协议,但在单片机里无法做到,这是因为单片机根本没有足够的代码空间来支持这些协议。一般在单片机里实现与需要有关的部分,而不使用的协议则一概不支持。例如文件共享SMB协议,在UNIX、WINDOWS都支持,但单片机上却没有必要。一般只能在单片机中实现:ARP、IP,ICMP、TCP/UDP这些协议,而更高层的协议,HTTP、SMTP、FTP一般是不需要支持的。虽然有些单片机例如AVR上网方案实现了这些协议,但实用性不太。因为单片机应用的TCP/IP协议大多是为了完成数据采集和数据传输,而不是网页浏览、文件传输这些功能。另外由于单片机资源的有限性,对某一协议而言,也有可能要作简化。本系统中实现的协议只有ARP、IP、ICMP、UDP。
a. ARP:MCU只响应主机对它的ARP请求,但不主动发送ARP请求。
b. ICMP:只实现一种ICMP信息,即ICMP回应信息。
c. IP:IP包最大可达65k,单片机中无法存放如此大的数据包,因此一般不支持分段,以发送小数据的方式来避免分段。
5. 结束语
智能小区是21世纪小康住宅发展的高级形式和主流,它的出现是房地产业和计算机、网络、通讯和控制等技术相结合的产物。基于TCP/IP的以太网技术更是推动智能小区标准化和数字化的关键所在。本文以基于TCP/IP技术的智能小区家庭智能终端系统的研究为例,详细讲述了RTL8019网卡芯片的驱动方法,并给出了单片机中TCP/IP协议的精简方案。本系统已经成功地运用于多个小区,其可行性、可靠性和灵活性已经得到证实,并且基于以太网智能小区系统低廉的造价、简洁的布线更使得基于TCP/IP的以太网技术成为了替代传统现场总线技术的一种重要手段。
参考文献:
1. 余永权. 嵌入式系统、智能家电及家居网络. 单片机与嵌入式系统应用,2001(1)
2. 老古. 单片机与TCP/IP网络. 老古论坛网,2002
3. REAL TEK SEMI-CONDUCTOR CO., LTD. RTL8019 data sheet,2000,8