張志亮,姜 甄
(上海理工大學(xué) 電氣工程學(xué)院,上海200092)
最近幾年,以太網(wǎng)技術(shù)日趨成熟,得到了空前的發(fā)展,在各個(gè)領(lǐng)域中,TCP/IP協(xié)議為主的開(kāi)放式互聯(lián)網(wǎng)技術(shù)得到廣泛應(yīng)用。但是在很多情況下,以RS-232串口為主要代表的傳統(tǒng)異步串行接口設(shè)備依舊在廣泛的應(yīng)用中。在很多場(chǎng)合中,設(shè)備串行數(shù)據(jù)需要同一網(wǎng)絡(luò)來(lái)傳輸,這就要解決舊設(shè)備和現(xiàn)代通信網(wǎng)絡(luò)之間的互聯(lián)。
20世紀(jì)90年代以來(lái),嵌入式技術(shù)在國(guó)內(nèi)外得到了很大的發(fā)展。通信領(lǐng)域中,先進(jìn)的數(shù)字技術(shù)已經(jīng)完全代替了傳統(tǒng)的模擬技術(shù)。廣播領(lǐng)域中,美國(guó)已經(jīng)進(jìn)入了數(shù)字化電視時(shí)代,歐洲流行的數(shù)字廣播電視已經(jīng)在全球得到了認(rèn)可,并且發(fā)展速度迅猛,數(shù)字音頻廣播也已經(jīng)正式打入國(guó)際市場(chǎng)。同時(shí),各種計(jì)算機(jī)軟件、新型元器件和集成電路在通信和消費(fèi)者需求品中作用也日益增大。例如,在維納斯計(jì)劃中應(yīng)用的生產(chǎn)機(jī)頂盒,最核心的技術(shù)就是應(yīng)用了32以上的高端芯片級(jí)嵌入式的技術(shù)。個(gè)人的領(lǐng)域中,嵌入式技術(shù)的主要用途是為個(gè)人的商用,成為了個(gè)人通信和數(shù)據(jù)移動(dòng)必不可少的工具,如在手寫(xiě)文字輸入、語(yǔ)音撥號(hào)上網(wǎng)、收發(fā)電子郵件等方面取得一定成效。
前端機(jī)接口總線為 RS-232通信總線,采用MAX3232進(jìn)行設(shè)計(jì)。該芯片采用+3.3 V電源供電,RE和DE分別為接受和發(fā)送的使能管腳,將RE和DE連接在一起構(gòu)成半雙工的通信方式。
單片機(jī)可以當(dāng)作普通的串行通信一樣傳輸或接受數(shù)據(jù),只要接受和發(fā)送數(shù)據(jù)的時(shí)候分別使能RE和DE管腳。由于RS-232總線的傳輸距離比較遠(yuǎn),在傳輸速度比較快的時(shí)候容易造成信號(hào)的反射,為此,在電路上增加了R16作為專(zhuān)門(mén)的匹配電阻,以防止信號(hào)的反射,其大小與傳輸線的直流電阻差不多大。另外需要注意的是RS-232總線為差分傳輸模式,所以即使不接地也可以通信,但是在工程應(yīng)用中往往是需要將傳輸線的屏蔽層接到電路中的地線上,這樣可以有效地防止傳輸過(guò)程中外部干擾的串入。
以太網(wǎng)接口電路是整個(gè)系統(tǒng)的支撐,CP2200有三種工作方式:I/O方式、儲(chǔ)存器方式和DMA方式。該系統(tǒng)中應(yīng)用I/O方式,CP2200所有控制寄存器的基地址都是300H,所以在連接地址線的時(shí)候,高位被連接到固定的高電平上,只有A0到A3連接到單片機(jī)的I/O管腳上,IOR和IOW是控制線,用來(lái)傳送讀或?qū)懙拿罱oCP2200芯片。
這部分電路提供了一個(gè)完整的操作界面,使用戶能夠很好地收集和采集到數(shù)據(jù),設(shè)置系統(tǒng)工作時(shí)的參數(shù)。這部分包括LCD顯示屏、鍵盤(pán)、LED指示燈等電路。
選用了NOKIA的LCD作為顯示器件,采用SPI總線與CPU通信,點(diǎn)陣數(shù)為84×48,UT1用來(lái)驅(qū)動(dòng)單片機(jī)的管腳去控制LCD的背光,背光是否點(diǎn)亮可以通過(guò)鍵盤(pán)來(lái)控制。電路的下面為鍵盤(pán)用來(lái)輸入信息和設(shè)置系統(tǒng)的工作參數(shù);LED是受遠(yuǎn)程計(jì)算機(jī)控制的,可以根據(jù)具體應(yīng)用場(chǎng)合和實(shí)際需要換成其他受控器件,如繼電器、晶閘管等。
系統(tǒng)軟件的設(shè)計(jì)是本系統(tǒng)的核心部分,也是最具有難度的部分。由于單片機(jī)資源有限,把TCP的核心部分轉(zhuǎn)接到單片機(jī)中,同時(shí)再把不需要的部分全部舍棄。本系統(tǒng)的軟件以4層形式來(lái)表示:以太網(wǎng)物理層、以太網(wǎng)接口層、互聯(lián)網(wǎng)絡(luò)層、網(wǎng)絡(luò)傳輸層。以太網(wǎng)物理層用來(lái)驅(qū)動(dòng)以太網(wǎng)控制器。以太網(wǎng)接口層用來(lái)完成以太網(wǎng)卡的識(shí)別,其中應(yīng)用的重要協(xié)議為ARP協(xié)議?;ヂ?lián)網(wǎng)絡(luò)層用來(lái)完成最基本的網(wǎng)絡(luò)傳輸協(xié)議任務(wù),其中應(yīng)用的協(xié)議為IP協(xié)議,它是一個(gè)極具代表性的協(xié)議,作用如同交通工具,把數(shù)據(jù)送往正確的目的地,還有ICMP等協(xié)議。網(wǎng)絡(luò)傳輸層包括TCP、UDP等重要協(xié)議,其中TCP協(xié)議是一種目前已應(yīng)用非常廣泛的網(wǎng)絡(luò)協(xié)議,它是數(shù)據(jù)的指揮部,指揮數(shù)據(jù)按照要求進(jìn)行傳輸,并且為數(shù)據(jù)傳輸提供了高可靠性,增加了傳輸安全性。
對(duì)以太網(wǎng)控制器與八位的8051單片機(jī)之間的通信,可選中斷方式或查詢方式的其中一種來(lái)進(jìn)行控制。若采用中斷方式,稍作修改可成為查詢方式的驅(qū)動(dòng)程序,可以實(shí)現(xiàn)在主程序中不對(duì)以太網(wǎng)控制器進(jìn)行不斷查詢,因此形成了一個(gè)相對(duì)比較獨(dú)立的驅(qū)動(dòng)程序模塊,從而能較直接地與TCP/IP協(xié)議的模塊進(jìn)行接口。
在中斷方式下,以太網(wǎng)接入驅(qū)動(dòng)程序主要由3大部分組成:接受數(shù)據(jù)模塊、發(fā)送數(shù)據(jù)模塊和以太網(wǎng)控制器中斷服務(wù)程序。數(shù)據(jù)通過(guò)以太網(wǎng)控制器中斷服務(wù)程序進(jìn)行發(fā)送,可以提高系統(tǒng)的實(shí)用性。中斷服務(wù)器的核心任務(wù)是發(fā)送接受以太網(wǎng)幀,所有程序也是為這兩個(gè)過(guò)程服務(wù)的。
TCP協(xié)議,即傳輸控制協(xié)議,它在網(wǎng)絡(luò)通信過(guò)程中起著不可替代的作用,是一種網(wǎng)絡(luò)傳輸層的協(xié)議。它在數(shù)據(jù)通信方面具有高可靠性,同時(shí)也具備處理網(wǎng)絡(luò)傳輸過(guò)程中的錯(cuò)誤和信息丟失方面的能力,像數(shù)據(jù)傳輸?shù)闹匕l(fā)和超時(shí)。TCP協(xié)議是IP協(xié)議的上層協(xié)議,它的首部也具備20個(gè)固定字節(jié),但是和IP首部是不同的。
TCP協(xié)議的工作流程分為三步:第一步建立連接,第二步傳送數(shù)據(jù),第三步釋放連接。作為面向連接的TCP協(xié)議,首先得建立TCP連接,然后進(jìn)入數(shù)據(jù)的傳輸環(huán)節(jié)。建立TCP連接應(yīng)用的是客戶服務(wù)器方式,客戶通常定義為主動(dòng)發(fā)起連接的應(yīng)用進(jìn)程,服務(wù)器通常定義為被動(dòng)等待建立連接的應(yīng)用進(jìn)程。TCP協(xié)議必須經(jīng)過(guò)3次握手才能建立正確連接。
連接完成后,就進(jìn)入雙方的數(shù)據(jù)傳輸環(huán)節(jié)了。在傳輸數(shù)據(jù)進(jìn)程中,TCP報(bào)文都會(huì)得到對(duì)方發(fā)出的ACK應(yīng)答。如果收到對(duì)方應(yīng)答,表示發(fā)出的數(shù)據(jù)已經(jīng)到達(dá)并吸收。如果沒(méi)有收到對(duì)方的應(yīng)答,發(fā)送方就會(huì)再發(fā)送此報(bào)文。如果還是沒(méi)有,則再次發(fā)送,以此循環(huán)。因?yàn)樵O(shè)置了重發(fā)次數(shù),如果達(dá)到了重發(fā)次數(shù)還沒(méi)收到對(duì)方的ACK應(yīng)答,則宣告本次發(fā)送失敗,不能再使用,并關(guān)閉TCP連接,關(guān)閉過(guò)程通過(guò)4次握手才能確定。TCP報(bào)文數(shù)據(jù)處理過(guò)程類(lèi)似于IP數(shù)據(jù)的處理,都是一個(gè)加包解包過(guò)程,不同之處在于TCP加包解包就處理其報(bào)文段。
在科技突飛猛進(jìn)的21世紀(jì),網(wǎng)絡(luò)幾乎涉及各個(gè)行業(yè),包括數(shù)據(jù)采集和儀器儀表范疇。在一個(gè)數(shù)據(jù)采集系統(tǒng)中,開(kāi)發(fā)數(shù)據(jù)采集系統(tǒng)固然不簡(jiǎn)單,但開(kāi)發(fā)網(wǎng)絡(luò)協(xié)議更具有挑戰(zhàn)性,將耗費(fèi)更多的時(shí)間精力和財(cái)力。因此,為了實(shí)現(xiàn)數(shù)據(jù)采集和儀器儀表的數(shù)據(jù)遠(yuǎn)程傳輸,應(yīng)用本系統(tǒng)將具有更大的意義。此系統(tǒng)使具有網(wǎng)絡(luò)遠(yuǎn)程傳輸功能的設(shè)備更易于開(kāi)發(fā),大幅度減少其開(kāi)發(fā)周期,節(jié)約不必要的投入,實(shí)現(xiàn)了設(shè)備經(jīng)濟(jì)型這一現(xiàn)實(shí)指標(biāo)。本系統(tǒng)已經(jīng)應(yīng)用于許多領(lǐng)域,優(yōu)勢(shì)顯著。例如,在印刷票據(jù)的在線識(shí)別系統(tǒng)中已經(jīng)得到成功的運(yùn)用,由于印刷票據(jù)在線識(shí)別設(shè)備用于印刷廠中,具有非常強(qiáng)的電磁干擾,使用串口長(zhǎng)距離傳輸時(shí),穩(wěn)定性不好,而使用了此系統(tǒng)后,不需要重新設(shè)計(jì)原來(lái)的識(shí)別設(shè)備,卻增加了數(shù)據(jù)傳輸?shù)目垢蓴_性,也具有連接以太網(wǎng)的功能。
[1]葉正清,張 志.基于PIC18F97J60的以太網(wǎng)通信接口設(shè)計(jì)[J].石油工程建設(shè).研究與開(kāi)發(fā),2008,(12):36-39.
[2]紀(jì)珍從.基于SPI總線的低頻信號(hào)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].機(jī)床電器,2008,(01):5-8.
[3]彭 軍.傳感器與檢測(cè)技術(shù)[M].西安:西安電子科技大學(xué)出版社,2003.
[4]關(guān)守平,姚 永.嵌入式系統(tǒng)的網(wǎng)絡(luò)接口模塊設(shè)計(jì)及應(yīng)用[J].儀器儀表學(xué)報(bào),2007,(04):267-269.
[5]謝 望.傳感器技術(shù)的現(xiàn)狀和發(fā)展趨勢(shì)[J].儀器儀表用戶,2006,13,(05):1-2.
[6]王小菊,潘琢金.嵌入式網(wǎng)絡(luò)接口模塊設(shè)計(jì)及協(xié)議棧實(shí)現(xiàn)[J].沈陽(yáng)航空工業(yè)學(xué)院學(xué)報(bào),2007,(01):48-52.