国产精品久久人妻互换毛片,国产av国片偷人妻麻豆,国产精品第12页,国产高清自产拍av在线,潮喷大喷水系列无码久久精品

技術(shù)頻道

用于智能儀器聯(lián)網(wǎng)的以太網(wǎng)通信接口設(shè)計(jì)


摘 要 本文針對智能儀器聯(lián)網(wǎng)的需求,對支持RS-232接口的智能儀器設(shè)計(jì)了一個以太網(wǎng)通信接口。以8051單片機(jī)為核心,用其串口作為與智能儀器的接口,用RTL8019AS芯片和RJ-45作為以太網(wǎng)接口,并通過軟件實(shí)現(xiàn)RS-232與TCP/IP協(xié)議的轉(zhuǎn)換,通過以太網(wǎng)實(shí)現(xiàn)智能儀器與遠(yuǎn)程計(jì)算機(jī)之間的數(shù)據(jù)通信,給出了硬件設(shè)計(jì)和軟件實(shí)現(xiàn)方案。
0 引言
  目前,互聯(lián)網(wǎng)絡(luò)硬件、軟件的迅猛發(fā)展,使得網(wǎng)絡(luò)用戶呈指數(shù)增長,在使用計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)互聯(lián)的同時,各種家電設(shè)備、儀器儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制設(shè)備正逐步地走向網(wǎng)絡(luò)化,以便共享網(wǎng)絡(luò)中龐大的信息資源。但是很多現(xiàn)有的儀器設(shè)備只配置了RS-232等串口,并沒有內(nèi)置網(wǎng)絡(luò)接口,無法直接聯(lián)網(wǎng)。本文所設(shè)計(jì)的通信接口可以使具有RS-232接口的智能儀器和設(shè)備接入以太網(wǎng),實(shí)現(xiàn)網(wǎng)絡(luò)中的遠(yuǎn)程計(jì)算機(jī)與測控現(xiàn)場的儀器設(shè)備之間的數(shù)據(jù)通信和數(shù)據(jù)共享。目前具有RS-232接口的智能設(shè)備非常普及,它們大多數(shù)配置有串口,甚至許多家用電器也提供有RS-232串口,例如微波爐、空調(diào)和熱水器等。這些設(shè)備和電器可以通過本文所設(shè)計(jì)的通信接口接入網(wǎng)絡(luò),使網(wǎng)絡(luò)中的監(jiān)控計(jì)算機(jī)對它們進(jìn)行遠(yuǎn)程控制和監(jiān)控,進(jìn)行數(shù)據(jù)采集,發(fā)出控制命令等一系列操作。使遠(yuǎn)在辦公室的人們通過自己辦公桌前的PC機(jī)監(jiān)視現(xiàn)場智能儀表的測量數(shù)據(jù),或者訪問諸如空調(diào),熱水器等家電,實(shí)現(xiàn)溫度查詢、室溫的預(yù)熱預(yù)冷、熱水器的開關(guān)等操作。

1 支持網(wǎng)絡(luò)化智能儀器接口的技術(shù)
   要能實(shí)現(xiàn)上述目標(biāo),每一個智能儀器和設(shè)備都應(yīng)成為Internet上的獨(dú)立節(jié)點(diǎn)。也就是說每個智能儀器都必須安裝一個網(wǎng)絡(luò)接口來控制數(shù)據(jù)流的收發(fā)。實(shí)現(xiàn)網(wǎng)絡(luò)化接口儀器的技術(shù)主要體現(xiàn)在以下幾個方面。
1.1 以太網(wǎng)技術(shù)
   以太網(wǎng)是目前使用最廣泛的局域網(wǎng)技術(shù),網(wǎng)絡(luò)連接中有80%是基于雙絞線介質(zhì)的以太網(wǎng)。為了滿足該網(wǎng)絡(luò)接口的通用性和實(shí)現(xiàn)的簡便性,采用了臺灣Realtek公司的具有即插即用功能的全雙工以太網(wǎng)控制器——RTL8019AS,并用廉價的8051單片機(jī)作為控制單元,實(shí)現(xiàn)把RS-232串口協(xié)議轉(zhuǎn)換成TCP/IP協(xié)議的目標(biāo)。RTL8019AS芯片中集成了OSI中的物理層和數(shù)據(jù)鏈路層的性能,它與單片機(jī)8051接口方便,具有軟件移植性好、價格低廉等優(yōu)點(diǎn),符合Ethernet II與IEEE802.3標(biāo)準(zhǔn),具有全雙工的工作方式,內(nèi)置16KB的SRAM,用于收發(fā)緩沖,能夠降低對主處理器的速度要求。

1.2 Socket套接字技術(shù)
   在遠(yuǎn)程監(jiān)控計(jì)算機(jī)端,Winsock控件可支持?jǐn)?shù)據(jù)收發(fā)程序的實(shí)現(xiàn)。Winsock控件是基于socket套接字技術(shù)的,提供了訪問TCP和UDP網(wǎng)絡(luò)服務(wù)非常簡便的途徑,使編程人員在開發(fā)客戶/服務(wù)器應(yīng)用程序時,不必了解TCP的細(xì)節(jié)或低級WinsockAPIs函數(shù)的調(diào)用,只需通過設(shè)置Winsock控件的屬性并調(diào)用其方法,就可直接連接到一臺遠(yuǎn)程計(jì)算機(jī)進(jìn)行,并可實(shí)現(xiàn)雙向數(shù)據(jù)交換。如果訪問TCP傳輸控制協(xié)議服務(wù)功能,還須建立連接并實(shí)現(xiàn)主機(jī)間點(diǎn)對點(diǎn)通信。如果訪問UDP數(shù)據(jù)文報(bào)協(xié)議功能,不必建立連接,發(fā)送數(shù)據(jù)將以廣播方式在網(wǎng)上傳輸。

1.3 TCP/IP協(xié)議
  TCP/IP是計(jì)算機(jī)網(wǎng)絡(luò)中最主要的傳輸協(xié)議,目前的Internet網(wǎng)就是基于TCP/IP協(xié)議的互聯(lián)網(wǎng)絡(luò)。而且TCP/IP除了用于廣域網(wǎng)外,在局域網(wǎng)中也被廣泛應(yīng)用。當(dāng)然,在單片機(jī)中實(shí)現(xiàn)TCP/IP協(xié)議與PC機(jī)不同,在PC里可支持比較完整的TCP/IP協(xié)議,但在單片機(jī)里由于資源的限制難以實(shí)現(xiàn)完整的TCP/IP協(xié)議,只能根據(jù)需要實(shí)現(xiàn)相關(guān)的部分。通常,在單片機(jī)中只實(shí)現(xiàn)ARP、IP、ICMP、TCP/UDP等協(xié)議,而更高層的協(xié)議(如HTTP、SMTP、FTP等)一般是不需要的。單片機(jī)應(yīng)用的TCP/IP協(xié)議大多是為了完成遠(yuǎn)程數(shù)據(jù)傳輸,而不是網(wǎng)頁瀏覽、文件傳輸?shù)裙δ?。另外,由于單片機(jī)資源的有限性,對某一協(xié)議而言還需要作適當(dāng)簡化。
  根據(jù)智能儀表的聯(lián)網(wǎng)要求,需要實(shí)現(xiàn)簡單的RS-232接口到Ethernet的數(shù)據(jù)傳輸,為此,需要編寫出以太網(wǎng)接口硬件以及底層的通訊及協(xié)議轉(zhuǎn)換程序。通過對高級網(wǎng)絡(luò)通信協(xié)議在以太網(wǎng)通信接口上如何實(shí)現(xiàn)等問題的探討,對TCP/IP協(xié)議族所需系統(tǒng)資源的消耗估計(jì),以及智能儀表對網(wǎng)絡(luò)通信的需求,故在本文中著重實(shí)現(xiàn)了TCP內(nèi)核中UDP、IP、ARP協(xié)議,并用Visual Basic.NET開發(fā)實(shí)現(xiàn)了遠(yuǎn)程PC端的數(shù)據(jù)收發(fā)程序。

2 網(wǎng)絡(luò)通信接口的硬件組成與設(shè)計(jì)
  根據(jù)儀器網(wǎng)絡(luò)化要求和所提供的技術(shù)支持,網(wǎng)絡(luò)通信接口可按圖1所示的架構(gòu)設(shè)計(jì)。

2.1 以太網(wǎng)控制器RTL8019AS
  以太網(wǎng)控制器RTL8019AS內(nèi)部可分為遠(yuǎn)程DMA接口(Remote DMA)、本地DMA接口(Local DMA)、MAC(介質(zhì)訪問控制)邏輯、數(shù)據(jù)編碼解碼邏輯和其它端口,其內(nèi)部結(jié)構(gòu)如圖2所示。
  按數(shù)據(jù)鏈路不同,可以將以太網(wǎng)絡(luò)控制器內(nèi)部劃分為遠(yuǎn)程DMA(remote DMA)信道和本地DMA(local DMA)信道兩個部分。遠(yuǎn)程DMA信道是指單片機(jī)對RTL8019AS內(nèi)部RAM進(jìn)行讀寫的總線,而單片機(jī)收發(fā)數(shù)據(jù)只需對遠(yuǎn)程DMA操作。本地DMA接口(雙絞線接口)是RTL8019AS與網(wǎng)線連接的通道,完成控制器與網(wǎng)線的數(shù)據(jù)交換。當(dāng)單片機(jī)要向以太網(wǎng)絡(luò)發(fā)送數(shù)據(jù)時,先將一幀數(shù)據(jù)經(jīng)過遠(yuǎn)程DMA信道,送到以太網(wǎng)控制器中的發(fā)送緩存內(nèi)存(Ring Buffer),然后發(fā)出傳送命令。以太網(wǎng)控制器在送出前一幀的數(shù)據(jù)后,繼而完成此幀的發(fā)送。以太網(wǎng)控制器接收到的數(shù)據(jù)通過MAC比較、CRC校驗(yàn)后,由FIFO存到接收緩存區(qū),收滿一幀后,以中斷或緩存器標(biāo)志的方式通知單片機(jī)。

  接收邏輯在接收時序的控制下,將串行數(shù)據(jù)組成字節(jié)送到FIFO和CRC;發(fā)送邏輯將FIFO送來的字節(jié)在發(fā)送時序的控制下逐位移出,并送到CRC;CRC邏輯在接收時對輸入的數(shù)據(jù)進(jìn)行CRC校驗(yàn),將結(jié)果與幀尾的CRC相比較,如不同,該幀數(shù)據(jù)將被拒收。在發(fā)送時CRC對幀數(shù)據(jù)產(chǎn)生CRC,并附加在數(shù)據(jù)尾傳送;地址識別邏輯對接受幀的目的地址與預(yù)先設(shè)置的本地地址進(jìn)行比較,如不同且不滿足廣播地址設(shè)定要求,該幀數(shù)據(jù)將被拒收;FIFO邏輯對收發(fā)的字節(jié)作16字節(jié)的緩沖,以減少對本地DMA請求的頻率。

2.2 外圍接口器件
  l 93C46,采用SPI串行總線接口的Serial EEPROM,容量為1Kbit(64×16bit),主要保存RTL8019AS的配置信息。
  l 62256,32K字節(jié)的RAM,作為8051的外部數(shù)據(jù)存儲器,用來存儲工作時產(chǎn)生的數(shù)據(jù)及變量。
  l 網(wǎng)絡(luò)接口采用UTP(無屏蔽雙絞線)RJ-45接口,用10BASE-T布線標(biāo)準(zhǔn)通過雙絞線進(jìn)行以太網(wǎng)通信。
  l 時鐘電路,通過X1、X2接口連接一個20MHz晶振以及2個33pF的電容,實(shí)現(xiàn)全雙工工作方式。
  l LED0、LED1各接一發(fā)光二極管以反映通訊狀態(tài)。

2.3 RS-232與以太網(wǎng)的接口設(shè)計(jì)
2.3.1 單片機(jī)與智能儀器端接口設(shè)計(jì)
   為了能使串口與單片機(jī)之間進(jìn)行數(shù)據(jù)互傳,必須采用邏輯電平轉(zhuǎn)換芯片MAX232,把輸入的+5V電壓轉(zhuǎn)換為RS-232接口所需的±10V電壓。插口連接器必須經(jīng)過該邏輯電平轉(zhuǎn)換器才能與單片機(jī)串行數(shù)據(jù)輸入/輸出引腳RXD(P3.0)、TXD(P3.1)相連。另外,還需要進(jìn)行波特率的設(shè)置,其串口通信程序由C51語言實(shí)現(xiàn)。
2.3.2 單片機(jī)與以太網(wǎng)接口的設(shè)計(jì)
  8051單片機(jī)負(fù)責(zé)TCP/IP協(xié)議的實(shí)現(xiàn)以及數(shù)據(jù)交換的處理,考慮到8051單片機(jī)本身只有16位的尋址方式,而RTL8019AS有20位。為了將以太網(wǎng)控制器內(nèi)16個I/O寄存器地址,映像到8051單片機(jī)上來并與其16位地址匹配,可采用內(nèi)存映像的方法,將RTL8019AS的20根地址總線SA0~SA19其中的SA10~SA19接地,其余10根地址中只使用7根與單片機(jī)的地址線進(jìn)行連接,其余為無關(guān)項(xiàng)。利用此種方法,就能通過單片機(jī)對RTL8019AS的寄存器進(jìn)行訪問,并進(jìn)行數(shù)據(jù)交換。圖3給出了8052單片機(jī)控制RTL8019AS實(shí)現(xiàn)以太網(wǎng)通訊的接口電路框圖。
  網(wǎng)絡(luò)接口采用UTP(無屏蔽雙絞線)RJ-45接口。在圖7中為外接一個隔離LPF濾波器0132,TPIN±為接收線,HD、LD為發(fā)送線,經(jīng)隔離后分別與RJ-45接口的RX±、TX±端相連。

3 軟件編程
3.1 RTL8019AS初始化程序的編寫
  要使網(wǎng)卡能夠工作,必須對網(wǎng)卡進(jìn)行初始化設(shè)置。首先要對網(wǎng)卡進(jìn)行復(fù)位操作,并讓其處于停止模式,然后對各寄存器進(jìn)行設(shè)置,包括接收發(fā)送緩沖器指針的設(shè)置,清除并屏蔽中斷標(biāo)志位,溢出報(bào)警指針的設(shè)置等。啟動網(wǎng)卡前,程序應(yīng)執(zhí)行從93C46讀入網(wǎng)卡物理地址到相應(yīng)寄存器的操作。最后啟動網(wǎng)卡,再次清除所有中斷標(biāo)志位。
  編寫相應(yīng)的發(fā)送程序,能夠發(fā)送一個從串口收到的數(shù)據(jù)包,將待發(fā)送的數(shù)據(jù)按幀格式封裝,長度最小為60字節(jié),最大為1514字節(jié),并通過遠(yuǎn)程DMA通道送到RTL8019AS的發(fā)送緩沖區(qū),然后發(fā)出傳送命令,完成幀的發(fā)送。需要設(shè)置以太網(wǎng)的目的地址、以太網(wǎng)源地址、協(xié)議類型、在按所設(shè)置的協(xié)議類型來設(shè)置數(shù)據(jù)段,即進(jìn)行打包工作。之后啟動本地DMA將數(shù)據(jù)發(fā)送到網(wǎng)上。我們通過觀察RTL8019AS相應(yīng)寄存器的狀態(tài)來確定其能否正常工作。
  對各寄存器進(jìn)行設(shè)置的部分初始化代碼如下:
void init_8019(void) //初始化8019函數(shù)
{ UCHAR temp; //定義temp為無符號字符型變量
Delay1ms(10); //延時10ms,建立數(shù)據(jù)穩(wěn)定
Rtl8019AS_Reset(); //復(fù)位
reg00=0x21; //使芯片處于停止模式,進(jìn)行寄存器設(shè)置
Delay1ms(10);
page(0);
reg0a=0x00; reg0b=0x00; //遠(yuǎn)程DMA字節(jié)計(jì)數(shù)為0
reg0c=0xe0; // 設(shè)置RCR,監(jiān)控狀態(tài),拒絕數(shù)據(jù)包進(jìn)入緩沖區(qū)
reg0d=0xe2; //設(shè)置TCR,自動校驗(yàn),內(nèi)部回顧模式
reg01=0x4c; reg02=0x80; reg03=0x4c; reg04=0x40;
// PSTART=0x4c,PSTOP=0x7f+1=0x80,BNRY=PSTART,接收溢出報(bào)警,TPSR發(fā)送起始頁
reg07=0xff; //ISR都置1,清除所有中斷標(biāo)志位
reg0f=0x00; //IMR都置0,屏蔽所有中斷
reg0e=0xc8; //DCR,8位DMA數(shù)據(jù)傳輸方式
page(1);
Delay1ms(1);
reg07=0x4d; //CURR,當(dāng)前頁指針
temp=reg07;
reg08=0x00; reg09=0x00; reg0a=0x00; reg0b=0x00; // MAR0~MAR7,多播地址寄
reg0c=0x00; reg0d=0x00; reg0e=0x00; reg0f=0x00; //存器,置0
reg00=0x22; //啟動芯片,
ReadRtl8019NodeID(); //讀網(wǎng)卡物理地址
WriteRtl8019NodeID(); //寫網(wǎng)卡物理地址
page(0);
reg0c=0xcc; //重置RCR,正常工作狀態(tài),
reg0d=0xe0; //設(shè)置TCR,自動校驗(yàn),正常工作模式
reg00=0x22; //再次啟動芯片開始工作
reg07=0xff; //ISR中第7位RST在啟動時置0,故再次清除中斷標(biāo)志位
}

3.2 TCP/IP通信協(xié)議內(nèi)容
  l ARP協(xié)議,即地址解析協(xié)議,提供邏輯地址到物理地址的動態(tài)映射。發(fā)送站必須知道接收站的物理地址才能對數(shù)據(jù)進(jìn)行封裝,才能在以太網(wǎng)中進(jìn)行傳輸,因此只知道接收站的邏輯地址是不夠的,必須事先通過ARP協(xié)議得到接收站的物理地址。
l IP協(xié)議,即網(wǎng)絡(luò)協(xié)議,提供一種不可靠的、無連接的服務(wù),完成的功能有將運(yùn)輸層待發(fā)送數(shù)據(jù)封裝成IP數(shù)據(jù)報(bào),調(diào)用以太網(wǎng)驅(qū)動程序發(fā)送數(shù)據(jù),從數(shù)據(jù)鏈路層接收數(shù)據(jù),以及數(shù)據(jù)校驗(yàn)等。
  l UDP協(xié)議,即用戶數(shù)據(jù)報(bào)協(xié)議,它是一個無連接協(xié)議,與TCP協(xié)議操作不同,UDP協(xié)議不使用報(bào)文確認(rèn)機(jī)制,不對報(bào)文排序,不進(jìn)行流控,因而UDP報(bào)文可能出現(xiàn)丟失、重復(fù)、亂序等現(xiàn)象,但由于它的前期工作比TCP少,計(jì)算機(jī)不建立連接,因而可以迅速地展開通信,一般用于傳輸少量不重要的數(shù)據(jù)和信息。是一種面向連接的、可靠的運(yùn)輸協(xié)議。UDP協(xié)議實(shí)現(xiàn)相同功能,但它只把數(shù)據(jù)報(bào)分組從一臺主機(jī)發(fā)送到另一臺主機(jī),不保證可靠性。

3.3 TCP/IP通信協(xié)議的軟件實(shí)現(xiàn)
  當(dāng)通信接口從串口收到數(shù)據(jù)后,首先將加上UDP首部,即打包成UDP報(bào)文,再把該報(bào)文加上IP首部,即打包成IP包,并執(zhí)行ARP程序來得到遠(yuǎn)程PC的物理地址,最后把這些都交給RTL8019AS芯片,由其自動生成以太網(wǎng)物理幀,發(fā)送到以太網(wǎng)上。同樣智能儀器也可以實(shí)現(xiàn)數(shù)據(jù)接收的功能,即把RTL8019AS收到的數(shù)據(jù)進(jìn)行層層拆包,如圖4所示。以上過程以及  RTL8019AS的上電初始化即對其內(nèi)部寄存器進(jìn)行設(shè)置和操作,均由C51在MedWin環(huán)境下實(shí)現(xiàn)。詳細(xì)的設(shè)置方法和源代碼參見附錄。

3.4 PC端數(shù)據(jù)接收程序的編程
  該程序是在Windows XP操作系統(tǒng)中用Visual Basic.NET編寫的,應(yīng)用了WinSock控件(基于Socket套接字技術(shù))。因本網(wǎng)絡(luò)接口使用UDP協(xié)議進(jìn)行數(shù)據(jù)傳輸,編程時首先設(shè)置WinSock控件的工作方式為UDP,然后設(shè)置所使用的端口。數(shù)據(jù)接收程序運(yùn)行時就將Socket綁定到該端口上,當(dāng)網(wǎng)絡(luò)接口要向該數(shù)據(jù)接收程序發(fā)送數(shù)據(jù)時,需要指明地址和端口,等數(shù)據(jù)發(fā)送到此端口時,將自動觸發(fā)WinSock控件的DataArrival事件,進(jìn)行數(shù)據(jù)的接收。使用UDP協(xié)議進(jìn)行通信時,通信的雙方時對等的。通信規(guī)程如圖5所示。

通信收發(fā)界面如圖6所示。

4 結(jié)束語
  本文介紹了智能儀器與以太網(wǎng)接口的設(shè)計(jì)方案,討論了硬件設(shè)計(jì)與軟件實(shí)現(xiàn)的方法。雖然文中所討論的是RS-232串行總線與以太網(wǎng)的集成,但其方法適用于眾多現(xiàn)場總線技術(shù)。本文所設(shè)計(jì)的接口為控制網(wǎng)絡(luò)和信息網(wǎng)絡(luò)與以太網(wǎng)的集成提供了一種低成本的解決方案。

參考文獻(xiàn)
[1] RTL8019AS Specification. Realtek Semi-conductor CO.LTD,2000.08
[2] 凌志浩.智能儀表原理與設(shè)計(jì)技術(shù).華東理工大學(xué)出版社,2003.08
[3] DOUGLAS E.COMER. 用TCP/IP進(jìn)行網(wǎng)際互聯(lián)(第三版)第二卷。 電子工業(yè)出版社,2001
[4] CHARLES E.SPURGEON. 以太網(wǎng)技術(shù)入門與實(shí)現(xiàn)。 機(jī)械工業(yè)出版社, 1998.08
[5] JOE CASAD, BOB WILLSEY. Sam Teach Yourself TCP/IP in 24 Hours. 機(jī)械工業(yè)出版社, 1999. 04
[6] 鄧全良。 Winsock網(wǎng)絡(luò)程序設(shè)計(jì)。 中國鐵道出版社, 2002.07
[7] 張培仁等。 基于C語言編程MCS-51單片機(jī)原理與應(yīng)用。 清華大學(xué)出版社, 2003.07
[8] 王進(jìn)強(qiáng)。 Visual Basic.Net. 清華大學(xué)出版社, 2004.04
[9] 卞志強(qiáng)。 Visual Basic 網(wǎng)絡(luò)程序設(shè)計(jì)。 人民郵電出版社, 2003.09
[10] 李超等。 智能儀表的網(wǎng)絡(luò)化技術(shù)。 世界儀表與自動化,2004.09




文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。