于浩洋
(黑龙江工程学院电子工程系,黑龙江 哈尔滨 150050)
随着电子技术的迅猛发展,各种工业过程数字仪表应运而生。目前,在工业生产过程中,数据通信普遍采用传统的一对一数据通信模式或自封闭的集散系统。这使得设备之间以及系统与外界之间的信息交换难以实现[1]。
因此,现今的大多数智能仪表接口都只单纯地适应以太网而不能同时兼容Internet[2]。开发具有以太网和Internet功能的智能仪表接口电路,不仅能够很好地解决传统的一对一的数据传输模式和数据“孤岛”问题,更为日益加快的信息化进程提供了一条可靠的过渡渠道[3]。
整个系统由以太网控制器、微控制器(MCU)、网络接口、RS-485接口和网关等模块构成,总体结构如图1所示。图1中,主控器单片机以查询的方式询问以太网控制器是否有数据接收。如有数据接收,则根据数据包类型交由相关的程序处理;如有数据需要发送,则根据数据包类型进行封装,并投递至以太网中。若目标地址(IP)隶属于Internet,则查询地址解析协议缓存表;若没有相应的IP、物理地址(MAC)映射,则以广播方式查询该映射,然后通过网关投递数据包[4]。图1中的虚线部分由硬件电路实现,其余部分通过软件编程来实现。
图1 系统结构框图Fig.1 Structure of the system
硬件电路的设计大体上可分为单片机控制电路、以太网控制器电路、串口扩展电路和RS-485端口通信电路4部分。
PIC24F16KA101系列是通用的16位微控制器,采用nanoWatt XLPTM超低功耗技术,可使休眠电流低至20 nA,非常适用于各种电池供电或电力有限的应用;具备集成的E2PROM存储器,体积小巧,采用低引脚数(20引脚和28引脚)封装[5],是具有广泛的外设功能和增强的计算性能的16位微控制器。PIC24F16KA101相关电路主要指与以太网控制器、串口扩展芯片的引脚连接。2个I/O引脚用于两芯片的片选信号输出;3个串口(SPI)引脚接入串口总线,通过接口电路数据的串行方式来进行数据传输;2个中断接口被用作外部中断输入,当网络中有数据包接收时,给予主控器中断信号,然后予以处理[6]。
ENC28J60以太网控制器为Microchip Technology公司推出的28引脚独立以太网控制器,是目前全世界最小封装的以太网控制器,它可为嵌入式应用提供低引脚数、低成本且高效易用的远程通信解决方案[7]。相关电路如图2所示。
图2 以太网控制电路Fig.2 Control circuit of Ethernet
图2中,根据ENC28J60的工作频率要求,需在OSC1和OSC2引脚间接25 MHz晶振及接地电容。ENC28J60的内部模拟电路需要在RBIAS引脚与地之间外接一个2 kΩ(精度为1%)的电阻。以太网接口采用含有以太网隔离变压器的RJ45插座HR901170A[8]。
串口扩展电路的设计是为了提高接口电路的网络范围,增加网络最大允许节点数。本文采用GM8142作为串口扩展芯片,将一个标准SPI接口扩展成4个标准的通用异步收发器(UART)。工作模式采用广播模式,即按各子串口设置的波特率、数据帧长和校验方式同时发送到所有子串口中。工作模式、各子串口的工作波特率、数据帧长等各种通信设置均通过软件进行设置,从而减少了微控制器的输入输出接口的需求,有效降低了芯片的功耗。
为了使接口电路拥有与RS-485网络通信的能力,本文采用ADM2587E作为RS-485收发器。ADM2587E包含一个集成式隔离直流电源,不再需要外部隔离电源模块。作为带隔离的增强型RS-485收发器,它还具备±15 kV静电释放保护功能的完全集成式隔离数据收发器,其适用于多点传输线路上的高速通信应用。ADM2587E驱动器还带有一个高电平有效使能电路,可以提供一个高电平接收机有效禁用电路,使接收机输出进入高阻抗状态。
本文将美国微芯科技公司协议栈的TCP/IP用于网络服务[9]。系统程序流程如图3所示。
图3 程序流程图Fig.3 Flowchart of the program
图3中,单片机PIC24F16KA101的初始化包括时钟模式的确定和复用引脚的相关寄存器的设置。串口初始化是对单片机中的串行口1状态和控制寄存器、串行口控制寄存器1和串行口控制寄存器2进行相应的设置。ENC28J60初始化工作包括接收和发送缓冲器、接收过滤器、晶振的启动时间、介质访问控制寄存器和物理层寄存器的设置。初始化芯片之前先关闭单片机的中断输入,对复位引脚给定一个持续的低电平复位信号,然后对相应的寄存器进行设置。设置完成所有需要的寄存器后,判断以太网状态中的时钟启动标志位是否置位,然后开中断。
将上述设计应用于智能抄表系统,系统结构图如图4所示。图4中,PIC24F16KA101作为控制器,通过串口SPI和中断引脚INT1连接串口扩展模块GM8142,并通过ADM2587E形成4个独立的RS-485网段(每个网段可连接32个RS-485节点)。通过扩展SIM(用户身份鉴别模块)卡接口,管理网关配置和通信加密。实现Web服务应用时,扩展的外部并行RAM和SPI接口的E2ROM,分别用于超文本传输协议HTTP缓冲和Web页存储。由于GM8142扩展的4个串口具有独立的通信设置和8字节的先进先出口,因此,可灵活地适应不同的测控节点通信。网关复位后,单片机对通用同步/异步传送器口进行设置。本文选择串口的通信方式为半双工模式[10],设置波特率寄存器 UBRRH和 UBRRL,使波特率为9600 bit/s,设置状态寄存器UCSRB,以使能接收器与发送器,并通过状态寄存器UCSRC设置帧格式。
图4 系统结构框图Fig.4 Structure of the system
由PIC24F16KA101为控制器的微处理器,配以ENC28J60构成的嵌入式以太网模块电路连接简单、功能强大;与目前大多数需要并行数据和地址总线的控制器相比,不需要小封装的微控制器外扩地址和数据总线,并可以将电路做到最小尺寸,符合未来工业以太网控制器的发展趋势。同时,该电路拥有跨越网关的能力。
本设计的创新之处就在于不仅使接口电路实现了兼有在以太网和Internet下进行数据传输的功能,而且克服了接口电路普遍存在的电路结构复杂、连线较多和容易出错的缺陷。实际应用显示,数据传输准确,电路兼容性较好。
[1]Axeison J.嵌入式Ethernet和Internet通信设计技术[M].骆丽,张岳强,欧小龙,译.北京:北京航空航天大学出版社,2006:4-12.
[2]艾树峰.基于89C51单片机以太网-CAN网关的接口设计与实现[J].电讯技术,2007,47(6):167 -171.
[3]吴强.基于单片机的以太网嵌入式控制器设计[J].微计算机信息,2008,24(3 -2):104 -106.
[4]Doyle J,Carrou J.TCP/IP 路由技术(第1 卷)[M].葛建立,吴剑章,译.北京:人民邮电出版社,2007:243-258.
[5]祈国梁,付明阳,王健晓.基于单片机的以太网串口服务器原理[J].自动化与仪表,2007(4):45-48.
[6]李纲.智能网络设备开发中的硬件设计[J].单片机与嵌入式系统应用,2002(10):12 -16.
[7]张伟业,黄云龙,陈国定.基于ENC28J60以太网通信接口的设计与实现[J].机电工程,2008,25(1):28 -30.
[8]于浩洋,邵国平,秦杰.基于ENC28J60以太网控制器的SPI接口设计[J].黑龙江工程学院学报:自然科学版,2009,23(2):64 -66.
[9]Scaglia S.嵌入式 Internet TCP/IP基础、实现及应用[M].潘琢金,徐蕾,拱长青,等,译.北京:北京航空航天大学出版社,2008:133-142.
[10]何瑾,刘杰,田明.C8051在水表计费系统中的应用[J].自动化仪表,2006,27(6):60-62.