873單片機(jī)以太網(wǎng)通信的方法,分別闡述了硬件及軟件設(shè)計(jì)方法。" />
所屬欄目:計(jì)算機(jī)網(wǎng)絡(luò)論文 發(fā)布日期:2010-10-19 16:42 熱度:
摘要:本文介紹了一種采用ZNE-100T以太網(wǎng)串口數(shù)據(jù)轉(zhuǎn)換模塊實(shí)現(xiàn)PIC16F
873單片機(jī)以太網(wǎng)通信的方法,分別闡述了硬件及軟件設(shè)計(jì)方法。
關(guān)鍵詞:ZNE-100T,嵌入式以太網(wǎng)技術(shù),以太網(wǎng)通信
0、引言
近幾年來,嵌入式系統(tǒng)正在向網(wǎng)絡(luò)化發(fā)展,各種嵌入式設(shè)備接入因特網(wǎng)進(jìn)行信息發(fā)布、數(shù)據(jù)采集和遠(yuǎn)程控制,給人們的生活和工作帶來了很多便利。嵌入式以太網(wǎng)技術(shù)就是將嵌入式系統(tǒng)接入因特網(wǎng)進(jìn)行訪問的控制技術(shù)。
在工業(yè)控制領(lǐng)域,嵌入式系統(tǒng)的典型應(yīng)用是:嵌入式系統(tǒng)作為下位機(jī)進(jìn)行數(shù)據(jù)采集和控制,PC作為上位機(jī)完成各種管理功能。
目前常用的幾種網(wǎng)絡(luò)方案有:在單片機(jī)中實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議、采用嵌入式實(shí)時(shí)操作系統(tǒng)、采用網(wǎng)絡(luò)芯片或Inernet接入服務(wù)器等。筆者對(duì)以上三種常用方式進(jìn)行了對(duì)比,見表1所示。
表1三種網(wǎng)絡(luò)方案的對(duì)比
實(shí)現(xiàn)方法 優(yōu)點(diǎn) 缺點(diǎn) 典型芯片
在單片機(jī)中實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議 單片機(jī)中軟件固化TCP/IP協(xié)議棧,再加以太網(wǎng)控制器實(shí)現(xiàn)CSMA/CD 硬件成本低 對(duì)單片機(jī)資源、容量等要求高;軟件設(shè)計(jì)復(fù)雜;開發(fā)難度大,周期長 MCU有Ubicom公司的SX52BD,
NIC有Realtek公司的RTL8029
采用嵌入式RTOS 高性能的嵌入式RTOS支持TCP/IP協(xié)議棧,外加以太網(wǎng)控制器 系統(tǒng)功能強(qiáng)大,開發(fā)者不必自己實(shí)現(xiàn)TCP/IP協(xié)議 開發(fā)成本大,嵌入式RTOS價(jià)格昂貴;對(duì)MCU的性能要求高 RTOS有VxWork、spSOS和WindowsCE等
采用網(wǎng)絡(luò)芯片或Inernet接入服務(wù)器 硬件固化了網(wǎng)絡(luò)協(xié)議并提供網(wǎng)絡(luò)接口,獨(dú)立于MCU 開發(fā)者不必考慮網(wǎng)絡(luò)芯片的工作細(xì)節(jié) 并不支持所有的MCU;價(jià)格較貴 WIZnet的W3100A;廣東致遠(yuǎn)的ZNE系列
1、ZNE-100T簡介
ZNE-100T是一款由廣東致遠(yuǎn)公司生產(chǎn)的嵌入式以太網(wǎng)串口數(shù)據(jù)轉(zhuǎn)換模塊,內(nèi)部集成TCP/IP協(xié)議棧,用戶利用它可以輕松實(shí)現(xiàn)嵌入式設(shè)備的網(wǎng)絡(luò)功能,節(jié)省人力物力和開發(fā)時(shí)間,使產(chǎn)品更快的投入市場,增強(qiáng)競爭力。
ZNE-100T的主要功能特點(diǎn)如下:
內(nèi)部集成了TCP/IP協(xié)議棧,用戶利于它可以輕松完成嵌入式設(shè)備的網(wǎng)絡(luò)功能;
ZNE-100T實(shí)現(xiàn)的功能是Serial(TTL)to10MEthernet,Serial最大波特率為115200bps,支持RS232/485/422等規(guī)范;
可利用Webbrowser和Windowsutility輕松進(jìn)行設(shè)定;
提供通用配置函數(shù)庫,方便用戶使用VC、VB、Delphi和C++Builder開發(fā)應(yīng)用程序;
支持TCPServer,TCPClient,UDP,RealCOMdriver,GroupMode等作業(yè)模式;
提供RealCOMdriver模式下的管理軟件,真正實(shí)現(xiàn)虛擬串口;
提供5個(gè)可控制IO口,并提供相應(yīng)的DEMO;
提供串口起始字節(jié)和結(jié)束字節(jié)分包功能;
支持動(dòng)態(tài)(DHCP)或靜態(tài)獲取IP地址;
尺寸小,只有44.5×31.7mm。
2、硬件電路設(shè)計(jì)
筆者利用ZNE-100T模塊在應(yīng)變測量中,使應(yīng)變測量系統(tǒng)的現(xiàn)場測量功能節(jié)點(diǎn)具備以太網(wǎng)傳輸功能,充分利用以太網(wǎng)較長的傳輸距離和較高的傳輸速度的優(yōu)點(diǎn)。
ZNE-100T的引腳如圖1所示。
圖1ZNE-100T模塊引腳圖
應(yīng)變測量系統(tǒng)的現(xiàn)場測量功能節(jié)點(diǎn)的MCU采用微芯公司的PIC16F873單片機(jī)。由于是在一個(gè)系統(tǒng)內(nèi)部短距離進(jìn)行異步串行通信,MCU與ZNE之間可直接使用邏輯電平互聯(lián)。為保護(hù)ZNE-100T模塊內(nèi)的CPU,在通信引腳之間串一個(gè)的限流電阻。同時(shí)為了匹配ZNE-100T模塊與PIC16F873的電平,在TXD和RXD引腳上分別掛一個(gè)上拉電阻。
圖2串行接口設(shè)計(jì)示意圖
以太網(wǎng)信號(hào)ETX+、ETX-、ERX+、ERX-與外界通訊的接口采用的是RJ45連接器。由于ZNE系列模塊內(nèi)部都集成了網(wǎng)絡(luò)變壓器,因此可以直接將這幾個(gè)以太網(wǎng)引腳接到RJ45連接器上。
3、以太網(wǎng)通信的軟件設(shè)計(jì)
軟件部分的設(shè)計(jì)包括:ZNE-100T模塊的設(shè)置、PC機(jī)(遠(yuǎn)端測控終端)上應(yīng)用軟件的編寫、PIC16F873(現(xiàn)場測量功能節(jié)點(diǎn))中軟件的編寫。
3.1、ZNE-100T的配置
配置軟件是在工作前,根據(jù)實(shí)際應(yīng)用情況,在遠(yuǎn)端測控終端中即PC機(jī)中通過以太網(wǎng)對(duì)ZNE模塊進(jìn)行設(shè)置的軟件。利用VC++6.0結(jié)合MFC進(jìn)行編程。配置軟件要對(duì)以下幾個(gè)內(nèi)容進(jìn)行設(shè)定:串口配置,包括串口的波特率、校驗(yàn)位、數(shù)據(jù)位、停止位;工作模式配置,模塊具有TCPServer,TCPClient,UDP,RealCOM,Group組播,TCPAuto工作模式供選擇;目標(biāo)IP地址、目標(biāo)端口號(hào)的設(shè)置;幀起始字節(jié)和幀結(jié)束字節(jié)的設(shè)定。
3.2、PC機(jī)(遠(yuǎn)端測控終端)上應(yīng)用軟件的編寫
軟件可以在VC++6.0中開發(fā)的,并利用了Winsock進(jìn)行網(wǎng)絡(luò)編程。用戶界面如圖3所示。
圖3上位機(jī)軟件運(yùn)行界面
下面以發(fā)送控件對(duì)應(yīng)的函數(shù)為例,列舉程序代碼:
voidCTesttransferDlg::OnButtonSend()
{
EnableSend(0);//設(shè)置對(duì)話框中的“發(fā)送”按鈕不可點(diǎn)
UpdateData(TRUE);//將對(duì)話框的控件中的數(shù)據(jù)交換到變量中。
LPTSTRpstr=m_strEditSend.GetBuffer(m_strEditSend.GetLength()+1);//把在對(duì)話框中輸入的數(shù)據(jù)放入緩沖中,并返回緩沖地址
intres=m_sock.Send(pstr,m_strEditSend.GetLength()+1);//發(fā)送數(shù)據(jù),并返回布爾值表明是否成功
if((res==SOCKET_ERROR&&m_sock.GetLastError()==WSAEWOULDBLOCK)||(res>0&&res<m_strEditSend.GetLength()+1))//如果OutputBuffer已滿即處于忙狀態(tài)或未完全發(fā)完
{
m_sock.SetResend((BYTE*)(pstr+((res==-1)?0:res)),
(m_strEditSend.GetLength()+1)-((res==-1)?0:res));//重發(fā)或繼續(xù)發(fā)送
}
elseif(res==SOCKET_ERROR&&m_sock.GetLastError()!=
WSAEWOULDBLOCK)//如果出現(xiàn)其他錯(cuò)誤
{
MessageBox("發(fā)送失敗");//出現(xiàn)提示框“發(fā)送失敗”
EnableSend(1);//設(shè)置對(duì)話框中的“發(fā)送”按鈕可點(diǎn)
}
else//其余情況,即已發(fā)送成功
EnableSend(1);//設(shè)置對(duì)話框中的“發(fā)送”按鈕可點(diǎn)
m_strEditSend.ReleaseBuffer();//釋放緩沖
UpdateData(FALSE);//將數(shù)據(jù)在對(duì)話框中對(duì)應(yīng)控件中顯示出來
}
3.3、PIC16F873(現(xiàn)場測量功能節(jié)點(diǎn))軟件的編寫
利用PIC16F873的USART模塊發(fā)送和接收數(shù)據(jù)。PIC16F873的USART是其兩個(gè)串行I/O模塊之一(另一個(gè)是SSP模塊)。USART可以配置為全雙工異步系統(tǒng),也可配置為半雙工同步系統(tǒng),本系統(tǒng)中將其配置為全雙工異步模式。
串口的發(fā)送和接收在函數(shù)usart_receive()和函數(shù)usart_send()中完成。
函數(shù)usart_receive()在主函數(shù)中被調(diào)用,等待并接受從串口送來的控制命令,把接收到的數(shù)據(jù)保存在全局變量unsignedcharReceive[9]中。
voidusart_receive(void)
{
CREN=1;//接收允許。
for(k=0;k<20;k++)
{
while(1)//等待接受數(shù)據(jù)。
{
if(RCIF==1)break;
}
Receive[k]=RCREG;//讀取數(shù)據(jù),同時(shí)清RCIF。
if(Receive[k]='')break;//發(fā)現(xiàn)結(jié)束字符則停止接受。
}
CREN=0;//接收禁止。
}
函數(shù)usart_send()通過串口發(fā)送恢復(fù)命令、采樣結(jié)果等。它的函數(shù)帶有參數(shù),為待發(fā)送的字符串?dāng)?shù)組。
voidusart_send(unsignedcharsend_string[20])
{
inti=0;
TXEN=1;//發(fā)送允許。
TXREG=0x01;//加幀起始字節(jié)0x01。
while(1)//等待幀起始字節(jié)發(fā)送完成。
{
if(TXIF==1)break;
}
while(1)//發(fā)送有效數(shù)據(jù),為參數(shù)中帶的字符串。
{
TXREG=send_string[i];
while(1)
{
if(TXIF==1)break;//等待發(fā)送完成。
}
if(send_string[i]=='')break;//發(fā)現(xiàn)結(jié)束字符則停止發(fā)送。
i++;//指向下一個(gè)字符。
}
......;//求校驗(yàn)和,并發(fā)送
......;//發(fā)送幀結(jié)束字節(jié)0x03。
TXEN=0;//發(fā)送禁止。
}
4、結(jié)論
利用ZNE-100T實(shí)現(xiàn)基于PIC16F873的以太網(wǎng)通信具有工作穩(wěn)定可靠,使用方便簡單的優(yōu)點(diǎn),從而使應(yīng)變測量系統(tǒng)具備以太網(wǎng)傳輸功能,充分利用以太網(wǎng)較長的傳輸距離和較高的傳輸速度的優(yōu)點(diǎn)。
參考文獻(xiàn):
1孫曉云,劉東輝,劉朝英.接口與通信技術(shù)[M].第1版.北京:中國電力出版社,2007
2羅軍舟,黎波濤,楊明,吳俊,黃俊.TCP/IP協(xié)議及網(wǎng)絡(luò)編程技術(shù)[M].第1版.北京:清華大學(xué)出版社,2004
3王憲,白一彤.基于單片機(jī)89S51的以太網(wǎng)通信[J].2009全國計(jì)算機(jī)網(wǎng)絡(luò)與通信學(xué)術(shù)會(huì)議論文集,2009
4鐘燕華.串行接口的Internet接入服務(wù)器的核心技術(shù)探討[J].寧波大紅鷹職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007,1(26):26~34
5廣州致遠(yuǎn)電子有限公司.ZNE-100TDatasheet.wwwembedcontrol.com,2006
搜論文知識(shí)網(wǎng)致力于為需要刊登論文的人士提供相關(guān)服務(wù),提供迅速快捷的論文發(fā)表、寫作指導(dǎo)等服務(wù)。具體發(fā)表流程為:客戶咨詢→確定合作,客戶支付定金→文章發(fā)送并發(fā)表→客戶接收錄用通知,支付余款→雜志出版并寄送客戶→客戶確認(rèn)收到。鳴網(wǎng)系學(xué)術(shù)網(wǎng)站,對(duì)所投稿件無稿酬支付,謝絕非學(xué)術(shù)類稿件的投遞!
文章標(biāo)題:PIC16F873基于ZNE-100T的以太網(wǎng)通信
轉(zhuǎn)載請(qǐng)注明來自:http://www.anghan.cn/fblw/dianxin/wangluo/4639.html
攝影藝術(shù)領(lǐng)域AHCI期刊推薦《Phot...關(guān)注:106
Nature旗下多學(xué)科子刊Nature Com...關(guān)注:152
中小學(xué)教師值得了解,這些教育學(xué)...關(guān)注:47
2025年寫管理學(xué)論文可以用的19個(gè)...關(guān)注:192
測繪領(lǐng)域科技核心期刊選擇 輕松拿...關(guān)注:64
及時(shí)開論文檢索證明很重要關(guān)注:52
中國水產(chǎn)科學(xué)期刊是核心期刊嗎關(guān)注:54
國際出書需要了解的問題解答關(guān)注:58
合著出書能否評(píng)職稱?關(guān)注:48
電信學(xué)有哪些可投稿的SCI期刊,值...關(guān)注:66
通信工程行業(yè)論文選題關(guān)注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關(guān)注:121
評(píng)職稱發(fā)論文好還是出書好關(guān)注:68
復(fù)印報(bào)刊資料重要轉(zhuǎn)載來源期刊(...關(guān)注:51
英文期刊審稿常見的論文狀態(tài)及其...關(guān)注:69
Web of Science 核心合集期刊評(píng)估...關(guān)注:59
電子信息論文范文
智能科學(xué)技術(shù)論文 廣播電視論文 光電技術(shù)論文 計(jì)算機(jī)信息管理論文 計(jì)算機(jī)網(wǎng)絡(luò)論文 計(jì)算機(jī)應(yīng)用論文 通信論文 信息安全論文 微電子應(yīng)用論文 電子技術(shù)論文 生物醫(yī)學(xué)工程論文 軟件開發(fā)論文
SCI期刊分析
copyright © www.anghan.cn, All Rights Reserved
搜論文知識(shí)網(wǎng) 冀ICP備15021333號(hào)-3