基于PIC18F串口到以太网的接口设计

时间:2022-10-22 01:37:52

基于PIC18F串口到以太网的接口设计

摘要:在工业领域,大量机器设备需要接入网络,实现网络中心控制。以PIC18F452单片机为基础,完成了以太网接口的硬件平台设计,采用Microchip TCP/IP协议,完成系统软件的设计。该接口完成了远程控制设备功能,可以对设备状态进行监控,也可以对设备数据进行信息采集。该接口性能稳定,成本低,是工业领域非常实用的产品。

关键词:以太网;TCP/IP;PIC微处理器

中图分类号:TP393文献标识码:A文章编号:16727800(2012)008016002

作者简介:刘燕丽(1980-),女,武汉科技大学理学院硕士研究生,研究方向为计算机算法和网络开发。

0引言

随着网络技术的快速发展与深入,工业生产设备,如电气、车床控制设备,需借助Local Area Network(LAN)网络进行数据采集、指令传送、数据传输以及设备网络化管理生产。设备网络化是现代工业技术发展的一个必要手段,但是,目前在工业生产领域中,大部分工业设备不具备与现有网络直接对接的接口。以太网采用的是TCP/IP协议,而工业设备最常用的通讯接口为RS-232/422/485串口,在不改变原有设备结构的基础上为其添加串口/网络转换接口,使其满足TCP/IP 协议传输标准,是串口设备上网的低成本解决方案。

嵌入式以太网接口解决方案多采用16位或32位微处理器,该方案能顺利解决嵌入式以太网通信问题,但是经济成本较高。在保证通信性能前提下,为了节约经济成本,本项目采用Microchip公司生产的低成本、高性能PIC18F系列8位微处理器作为硬件开发平台,并搭建精简的Microchip TCP/IP协议栈软件工作平台,最终完成系统通信功能的开发。

1系统硬件平台设计

本系统的硬件功能主要分为两部分:一部分是数据采集模块,主要利用PIC18F452芯片对设备的数据进行采集;第二部分就是通信模块,对串口数据帧和以太网数据帧进行转换。首先,介绍使用的PIC18F452微处理器。PIC18F452微处理器是Microchip公司推出的一款增强型8位单片机,采用精简指令集(RISC)的设计,有两级流水线,最高运行频率可达到10MIPS,能够满足系统对实时性的要求;C编译器优化体系结构,兼容PIC16与PIC17指令源代码;指令总线16位宽,数据总线8位宽;单片机内部有32K字节的FLASH程序存储器,1.5K字节的数据存储器和256字节的EEPROM,便于系统的扩展;自带8×8硬件乘法器;中断资源丰富,提供18个中断源,两个中断优先级,并且中断优先级可配置。PIC18F452单片机配备了较为丰富的模块,极大地简化了开发过程中单片机电路的设计工作。同时,PIC18F系列单片机提供功能强大的指令集,绝大部分指令为单字(2个字节)存储,单周期执行,使得系统的指令传输执行效率高。PIC18F452单片机采用低电压工作模式以及待机睡眠模式,高速FLASH/EEPROM技术,使得PIC18F452单片机功耗低,这对中小企业的工业控制系统具有非常实际的意义。

系统的硬件设计模式如图1所示,该图描述了系统硬件的模块设计,系统主要包括串口数据模块,该模块对串口数据进行采集以及处理;数据处理模块是CPU模块,控制数据在缓冲区输入输出,调配资源;以太网控制模块完成以太网通信功能。

图1硬件系统结构

2系统模块功能设计

实现网口和串口通信功能,需要将串口数据格式转化为网口数据格式。所以数据帧格式的定义与转换是最基本的内容。串口帧包含两部分:需要传输的数据与串口号,这样就知道传输的数据是来自哪个设备。来自设备的数据可能是不等长的,为了传输的方便,可以把串口帧的长度设置为定值,不足长度的帧,在结束符后补0。本系统采用全双工工作方式,即设备和网络之间双向传输数据。在实现过程中,一条路径:从串口设备采集的数据还原成基本数据之后,送到数据缓冲区存放,然后交付网络发送模块打成网络数据包,发送到目的地址。另一条路径,获取网络数据包,去掉网络传输控制信息,交付数据缓冲区,然后由串口处理单元将数据处理成串口帧发送出去。串口帧数据转化为网口帧数据,需要在数据帧前加上网络控制信息,比如TCP头、IP头等。针对不同的网络设备,需要完成MAC地址的获取。对硬件模块也需设置各项网络控制参数,如波特率、缓冲区大小等等。下面详细介绍各功能模块的硬件以及软件开发技术。

2.1串口通信模块

该系统中设备硬件接口均采用RS-232异步串行接口。Uart通用异步接发器(Universal Asynchronous Receiver/ Transmitter)部分主要是用于计算机并行数据与设备的串行数据之间的通信转换。首先,设备的RS-232串行接口经过电平转换后接入Uart部分。然后,Uart将接收到的数据帧去掉起始位、停止位以及奇偶校验位,把数据发送到FIFO(First In First Out)队列中,若FIFO队列中数据满了,则Uart部分设置为忙状态,直到CPU将数据从队列中取走之后,Uart设为空闲,开始下一轮数据的获取。RS-232串口通信模块需预先设置好通信参数,比如:波特率、数据位、停止位、校验位等。因为该模块数据每次传输数据量小,所以采用较简单奇偶校验方法,即可满足工业要求。该模块串口通信模块采用中断控制,每次按照字节进行读取数据。在向网络发送时,数据先送入接收移位寄存器,然后再送入FIFO中;从网络接收数据时,数据总线上写入16个字节,发送FIFO中,然后再送入移位寄存器转换成串行数据输出。

2.2TCP/ IP 协议栈的实现

TCP/IP协议族是控制网络传输的基本协议,但是,作为工业控制,不需要具备在各个层工作的每一个协议。本系统采用Microchip TCP/IP协议栈实现数据的传输控制。Microchip TCP/IP协议栈采用模块化设计,每个模块的实现代码是一个独立的源文件,在使用时才被添加到Stack Task协议栈。Microchip TCP/IP协议与传统的TCP/IP模型有所不同,其增加了两个新模块:“Stack Task”和“ARP Task”。Stack Task主要是管理协议栈及其所有模块的操作,而ARP Task管理地址解析协议层的服务。图2描述了Microchip TCP/IP协议栈的工作层次。本系统采用了Microchip TCP/IP协议栈,可以完成多任务处理,而且由于Microchip TCP/IP协议栈独立于任何操作系统,可以方便地进行软件移植。

上一篇:SEO技术在电子商务网站中的应用 下一篇:基于.net的精品课程管理系统的设计与实现