摘要:本文介绍了一种采用ZNE-100T以太网串口数据转换模块实现PIC16F
873单片机以太网通信的方法,分别阐述了硬件及软件设计方法。
关键词:ZNE-100T,嵌入式以太网技术,以太网通信
0、引言
近几年来,嵌入式系统正在向网络化发展,各种嵌入式设备接入因特网进行信息发布、数据采集和远程控制,给人们的生活和工作带来了很多便利。嵌入式以太网技术就是将嵌入式系统接入因特网进行访问的控制技术。
在工业控制领域,嵌入式系统的典型应用是:嵌入式系统作为下位机进行数据采集和控制,PC作为上位机完成各种管理功能。
目前常用的几种网络方案有:在单片机中实现网络协议、采用嵌入式实时操作系统、采用网络芯片或Inernet接入服务器等。笔者对以上三种常用方式进行了对比,见表1所示。
表1三种网络方案的对比
实现方法 优点 缺点 典型芯片
在单片机中实现网络协议 单片机中软件固化TCP/IP协议栈,再加以太网控制器实现CSMA/CD 硬件成本低 对单片机资源、容量等要求高;软件设计复杂;开发难度大,周期长 MCU有Ubicom公司的SX52BD,
NIC有Realtek公司的RTL8029
采用嵌入式RTOS 高性能的嵌入式RTOS支持TCP/IP协议栈,外加以太网控制器 系统功能强大,开发者不必自己实现TCP/IP协议 开发成本大,嵌入式RTOS价格昂贵;对MCU的性能要求高 RTOS有VxWork、spSOS和WindowsCE等
采用网络芯片或Inernet接入服务器 硬件固化了网络协议并提供网络接口,独立于MCU 开发者不必考虑网络芯片的工作细节 并不支持所有的MCU;价格较贵 WIZnet的W3100A;广东致远的ZNE系列
1、ZNE-100T简介
ZNE-100T是一款由广东致远公司生产的嵌入式以太网串口数据转换模块,内部集成TCP/IP协议栈,用户利用它可以轻松实现嵌入式设备的网络功能,节省人力物力和开发时间,使产品更快的投入市场,增强竞争力。
ZNE-100T的主要功能特点如下:
内部集成了TCP/IP协议栈,用户利于它可以轻松完成嵌入式设备的网络功能;
ZNE-100T实现的功能是Serial(TTL)to10MEthernet,Serial最大波特率为115200bps,支持RS232/485/422等规范;
可利用Webbrowser和Windowsutility轻松进行设定;
提供通用配置函数库,方便用户使用VC、VB、Delphi和C++Builder开发应用程序;
支持TCPServer,TCPClient,UDP,RealCOMdriver,GroupMode等作业模式;
提供RealCOMdriver模式下的管理软件,真正实现虚拟串口;
提供5个可控制IO口,并提供相应的DEMO;
提供串口起始字节和结束字节分包功能;
支持动态(DHCP)或静态获取IP地址;
尺寸小,只有44.5×31.7mm。
2、硬件电路设计
笔者利用ZNE-100T模块在应变测量中,使应变测量系统的现场测量功能节点具备以太网传输功能,充分利用以太网较长的传输距离和较高的传输速度的优点。
ZNE-100T的引脚如图1所示。
图1ZNE-100T模块引脚图
应变测量系统的现场测量功能节点的MCU采用微芯公司的PIC16F873单片机。由于是在一个系统内部短距离进行异步串行通信,MCU与ZNE之间可直接使用逻辑电平互联。为保护ZNE-100T模块内的CPU,在通信引脚之间串一个的限流电阻。同时为了匹配ZNE-100T模块与PIC16F873的电平,在TXD和RXD引脚上分别挂一个上拉电阻。
图2串行接口设计示意图
以太网信号ETX+、ETX-、ERX+、ERX-与外界通讯的接口采用的是RJ45连接器。由于ZNE系列模块内部都集成了网络变压器,因此可以直接将这几个以太网引脚接到RJ45连接器上。
3、以太网通信的软件设计
软件部分的设计包括:ZNE-100T模块的设置、PC机(远端测控终端)上应用软件的编写、PIC16F873(现场测量功能节点)中软件的编写。
3.1、ZNE-100T的配置
配置软件是在工作前,根据实际应用情况,在远端测控终端中即PC机中通过以太网对ZNE模块进行设置的软件。利用VC++6.0结合MFC进行编程。配置软件要对以下几个内容进行设定:串口配置,包括串口的波特率、校验位、数据位、停止位;工作模式配置,模块具有TCPServer,TCPClient,UDP,RealCOM,Group组播,TCPAuto工作模式供选择;目标IP地址、目标端口号的设置;帧起始字节和帧结束字节的设定。
3.2、PC机(远端测控终端)上应用软件的编写
软件可以在VC++6.0中开发的,并利用了Winsock进行网络编程。用户界面如图3所示。
图3上位机软件运行界面
下面以发送控件对应的函数为例,列举程序代码:
voidCTesttransferDlg::OnButtonSend()
{
EnableSend(0);//设置对话框中的“发送”按钮不可点
UpdateData(TRUE);//将对话框的控件中的数据交换到变量中。
LPTSTRpstr=m_strEditSend.GetBuffer(m_strEditSend.GetLength()+1);//把在对话框中输入的数据放入缓冲中,并返回缓冲地址
intres=m_sock.Send(pstr,m_strEditSend.GetLength()+1);//发送数据,并返回布尔值表明是否成功
if((res==SOCKET_ERROR&&m_sock.GetLastError()==WSAEWOULDBLOCK)||(res>0&&res<m_strEditSend.GetLength()+1))//如果OutputBuffer已满即处于忙状态或未完全发完
{
m_sock.SetResend((BYTE*)(pstr+((res==-1)?0:res)),
(m_strEditSend.GetLength()+1)-((res==-1)?0:res));//重发或继续发送
}
elseif(res==SOCKET_ERROR&&m_sock.GetLastError()!=
WSAEWOULDBLOCK)//如果出现其他错误
{
MessageBox("发送失败");//出现提示框“发送失败”
EnableSend(1);//设置对话框中的“发送”按钮可点
}
else//其余情况,即已发送成功
EnableSend(1);//设置对话框中的“发送”按钮可点
m_strEditSend.ReleaseBuffer();//释放缓冲
UpdateData(FALSE);//将数据在对话框中对应控件中显示出来
}
3.3、PIC16F873(现场测量功能节点)软件的编写
利用PIC16F873的USART模块发送和接收数据。PIC16F873的USART是其两个串行I/O模块之一(另一个是SSP模块)。USART可以配置为全双工异步系统,也可配置为半双工同步系统,本系统中将其配置为全双工异步模式。
串口的发送和接收在函数usart_receive()和函数usart_send()中完成。
函数usart_receive()在主函数中被调用,等待并接受从串口送来的控制命令,把接收到的数据保存在全局变量unsignedcharReceive[9]中。
voidusart_receive(void)
{
CREN=1;//接收允许。
for(k=0;k<20;k++)
{
while(1)//等待接受数据。
{
if(RCIF==1)break;
}
Receive[k]=RCREG;//读取数据,同时清RCIF。
if(Receive[k]='')break;//发现结束字符则停止接受。
}
CREN=0;//接收禁止。
}
函数usart_send()通过串口发送恢复命令、采样结果等。它的函数带有参数,为待发送的字符串数组。
voidusart_send(unsignedcharsend_string[20])
{
inti=0;
TXEN=1;//发送允许。
TXREG=0x01;//加帧起始字节0x01。
while(1)//等待帧起始字节发送完成。
{
if(TXIF==1)break;
}
while(1)//发送有效数据,为参数中带的字符串。
{
TXREG=send_string[i];
while(1)
{
if(TXIF==1)break;//等待发送完成。
}
if(send_string[i]=='')break;//发现结束字符则停止发送。
i++;//指向下一个字符。
}
......;//求校验和,并发送
......;//发送帧结束字节0x03。
TXEN=0;//发送禁止。
}
4、结论
利用ZNE-100T实现基于PIC16F873的以太网通信具有工作稳定可靠,使用方便简单的优点,从而使应变测量系统具备以太网传输功能,充分利用以太网较长的传输距离和较高的传输速度的优点。
参考文献:
1孙晓云,刘东辉,刘朝英.接口与通信技术[M].第1版.北京:中国电力出版社,2007
2罗军舟,黎波涛,杨明,吴俊,黄俊.TCP/IP协议及网络编程技术[M].第1版.北京:清华大学出版社,2004
3王宪,白一彤.基于单片机89S51的以太网通信[J].2009全国计算机网络与通信学术会议论文集,2009
4钟燕华.串行接口的Internet接入服务器的核心技术探讨[J].宁波大红鹰职业技术学院学报,2007,1(26):26~34
5广州致远电子有限公司.ZNE-100TDatasheet.wwwembedcontrol.com,2006
搜论文知识网致力于为需要刊登论文的人士提供相关服务,提供迅速快捷的论文发表、写作指导等服务。具体发表流程为:客户咨询→确定合作,客户支付定金→文章发送并发表→客户接收录用通知,支付余款→杂志出版并寄送客户→客户确认收到。鸣网系学术网站,对所投稿件无稿酬支付,谢绝非学术类稿件的投递!