錢廣玉
摘要:社會(huì)的進(jìn)步,時(shí)代的發(fā)展,給人們的生活帶來(lái)了翻天覆地的變化。網(wǎng)絡(luò)時(shí)代的到來(lái)豐富了人們的日常生活。隨著單片機(jī)技術(shù)的發(fā)展,以單片機(jī)為主的嵌入式設(shè)備,在越來(lái)越多的領(lǐng)域受到了廣泛的運(yùn)用。網(wǎng)絡(luò)技術(shù)的發(fā)展也給嵌入式系統(tǒng)的發(fā)展提供了先決條件,對(duì)嵌入式單片機(jī)的TCP/IP協(xié)議的研究,對(duì)于社會(huì)經(jīng)濟(jì)的發(fā)展具有重要意義。深入了解嵌入式單片機(jī)與互聯(lián)網(wǎng)對(duì)接時(shí)的技術(shù)要求,研究軟硬件方面的技術(shù)設(shè)計(jì),并運(yùn)用到實(shí)際生活中來(lái),為經(jīng)濟(jì)的發(fā)展做出努力。
關(guān)鍵詞:?jiǎn)纹瑱C(jī) TCP/IP 研究和應(yīng)用
中圖分類號(hào):TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)08-0142-01
1 前言
自互聯(lián)網(wǎng)時(shí)代以后,網(wǎng)絡(luò)與人們的生活息息相關(guān),互聯(lián)網(wǎng)與家庭生活用品的相結(jié)合將會(huì)使得網(wǎng)絡(luò)接入到家庭中帶來(lái)飛速的發(fā)展?;趩螜C(jī)片嵌入式設(shè)備是互聯(lián)網(wǎng)能夠與家庭生活用品相結(jié)合的設(shè)備。所以,研究嵌入式系統(tǒng)的互聯(lián)網(wǎng)將會(huì)有很大的應(yīng)用前景。研究基于嵌入式單機(jī)片片的TCP/IP協(xié)議技術(shù),使得開(kāi)發(fā)成本降低,同時(shí)應(yīng)用范圍增廣。使得互聯(lián)網(wǎng)更好的與家庭生活用品相結(jié)合,更好的服務(wù)于人類生活。
2 硬件設(shè)計(jì)
2.1 芯片選擇與介紹
處理器、控制芯片和RJ45是組成硬件的主要部分。處理機(jī)基本都是Atmega16的單機(jī)片,在性能這塊的主要特點(diǎn)是穩(wěn)定并且抗干擾能力這塊比較強(qiáng)。主要有以下幾個(gè)特點(diǎn):首先,有16k字節(jié),可以編程,其次,擁有32個(gè)通用的寄存器,再次,采用先進(jìn)的JTAG的接口,可以支持片內(nèi)編程和調(diào)試,最后,獨(dú)立得振蕩器可以用來(lái)編程看門狗的定時(shí)器??刂菩酒@塊主要采用的是以太網(wǎng)控制芯片,具有簡(jiǎn)單電路、高效能的特點(diǎn),能夠更好的將系統(tǒng)連接到以太網(wǎng)中。
在Atmega16中,為實(shí)現(xiàn)片選功能,可以將PD1口和CP2200的片選信號(hào)進(jìn)行連接,為重新獲取硬件中中斷的信號(hào),可以將PD2口和CP2200的中斷信號(hào)信號(hào)進(jìn)行連接。數(shù)據(jù)線可以選擇Atmega16中的PAO-PA7口連接上CP2200的DO-D7,而地址線則可以選擇Atmega16中的PBO-PB7口和CP2200的AO-A7相連,最終實(shí)現(xiàn)讀和寫(xiě)選通控制。另外CP2200在和RJ45相互連接最后以太網(wǎng)接入。
2.2 硬件連接
在cp2200中主要有兩種模式,均以地址、數(shù)據(jù)復(fù)用和非復(fù)用作為其工作方式,在設(shè)計(jì)的過(guò)程中是以MUCEN和MOTEN引腳接地。如果CP2200以非復(fù)用的方式,他會(huì)占用的單機(jī)片的I/O口比率較多,但卻讓傳輸率大大的提升了,超過(guò)了30Mbps。當(dāng)設(shè)計(jì)中采用了MUXEN作為連接,如果單機(jī)片I/O不夠用得情況下,只需要改變此引腳的跳線連接,一部分的I/O口就會(huì)得到釋放,最后供給系統(tǒng)使用。
2.3 底層驅(qū)動(dòng)與通信
CP2200的初始化工作非常的重要,是保證其完成的首要條件。什么是CP2200的初始化工作呢,就是通過(guò)ATmega16來(lái)操作CP2200的寄存器。采用模擬互聯(lián)網(wǎng)總線非復(fù)用方式的讀寫(xiě)時(shí)序是可以實(shí)現(xiàn)CP2200寄存器讀和寫(xiě)功能的有效辦法。在研究和設(shè)計(jì)過(guò)程中,通過(guò)單片機(jī)的指令控制周期,使得每隔125ns是一個(gè)循環(huán)。通過(guò)總線非復(fù)用方式模擬,當(dāng)發(fā)出一條指令時(shí),互聯(lián)網(wǎng)的總線時(shí)序就會(huì)發(fā)生變化。在準(zhǔn)備CP2200的初始化工作時(shí),要特別注意定時(shí)和緩沖溢出情況,不然接受數(shù)據(jù)時(shí)容易出現(xiàn)失誤。單片機(jī)和CP2200之間是通過(guò)查詢模式讀取信息。通過(guò)Atmega16實(shí)現(xiàn)靜態(tài)緩存狀態(tài)。靜態(tài)緩存的讀取信息方式,是因?yàn)锳tmega16的存儲(chǔ)空間如果是處于動(dòng)態(tài)的緩存,就會(huì)影響接收的速度,所以靜態(tài)的緩存,最適合接收讀取數(shù)據(jù)信息。
3 TCP/ IP 協(xié)議
3.1 ARP協(xié)議
ARP協(xié)議即地址解析協(xié)議。ARP協(xié)議是反應(yīng)出IP地址和硬件地址之間的關(guān)系的一個(gè)動(dòng)態(tài)的投影。為了實(shí)現(xiàn)ARP的地址映射功能,研究發(fā)現(xiàn),需要將ARP分成三個(gè)組成部分,分別是ARP緩存、ARP應(yīng)答和ARP請(qǐng)求。每個(gè)部分的任務(wù)都是不一樣的,但都是同等重要的。例如ARP的作用是為了使IP地址和硬件地址之間的映射記錄時(shí)刻更新,這樣才能使得數(shù)據(jù)處于一個(gè)動(dòng)態(tài)記錄和更新的狀態(tài)。ARP應(yīng)答和ARP請(qǐng)求一般情況下都是沒(méi)有發(fā)揮作用的。當(dāng)ARP請(qǐng)求發(fā)出指令時(shí),ARP應(yīng)答才會(huì)發(fā)揮作用,更新ARP緩存中的IP地址和硬件地址之間的映射記錄。同時(shí)ARP應(yīng)答模式也會(huì)開(kāi)啟。
3.2 IP和ICMP協(xié)議
在設(shè)計(jì)這塊本設(shè)計(jì)主要集中在IP模塊和ICMP模塊這兩大基礎(chǔ)模塊。作為主要負(fù)責(zé)主機(jī)尋址和設(shè)定路由的無(wú)連接協(xié)議的IP。在設(shè)計(jì)過(guò)程中,根據(jù)不同系統(tǒng)的不同需要,雖然因?yàn)榉謱拥牟粐?yán)密,降低了各層之間的相對(duì)獨(dú)立,但是卻能夠在另一方面,間接地提高了處理數(shù)據(jù)的速度,在網(wǎng)絡(luò)通信這塊影響較小。而在應(yīng)用網(wǎng)絡(luò)這塊主要以以太網(wǎng)為基礎(chǔ),沒(méi)有實(shí)現(xiàn)最初目標(biāo)即IP分層,但是卻簡(jiǎn)化了TCP/IP協(xié)議棧,使它更便捷的應(yīng)用在系統(tǒng)中。ICMP主要被應(yīng)用于系統(tǒng)通信的差錯(cuò)控制,因?yàn)樗谀撤N程度上彌補(bǔ)了IP協(xié)議的缺陷。通過(guò)ICMP-Input()接收并處理ICMP數(shù)據(jù)包,通過(guò)ICMP-Output()發(fā)送ICMP數(shù)據(jù)包。
3.3 TCP協(xié)議
TCP被廣泛的應(yīng)用于連接可靠的字節(jié)流服務(wù),標(biāo)準(zhǔn)的TCP/IP協(xié)議,是以實(shí)現(xiàn)控制流量、控制擁塞和滑動(dòng)窗口作為目標(biāo)的,但是在實(shí)際的設(shè)計(jì)過(guò)程中,側(cè)重的點(diǎn)和方向可能會(huì)存在差異,主要是以Atmega16作為對(duì)象,它的存儲(chǔ)資源和其他的相比會(huì)相對(duì)有限,針對(duì)這一特點(diǎn)對(duì)TCL層的功能相對(duì)做了一定的簡(jiǎn)化,未能實(shí)現(xiàn)控制流量、控制擁塞。所以在設(shè)計(jì)的過(guò)程中沒(méi)有對(duì)TCL層進(jìn)行簡(jiǎn)化,可以幫助協(xié)議棧進(jìn)行擴(kuò)展。當(dāng)系統(tǒng)只是被應(yīng)用在一般的TCP/IP的系統(tǒng)通信時(shí),TCP的定時(shí)重傳功能就可以暫時(shí)不實(shí)現(xiàn),因?yàn)楫?dāng)進(jìn)行通訊時(shí),如果出現(xiàn)超時(shí)的情況會(huì)重傳,在數(shù)據(jù)傳送的過(guò)程中,一般也是一次只接收或者是只發(fā)送一個(gè)數(shù)據(jù)包。
3.4 UDP協(xié)議
我們都知道UDP和TCP是共同使用一個(gè)網(wǎng)絡(luò)層的,但是UDP不會(huì)向應(yīng)用層傳遞可靠有用的信息。因?yàn)樵谀骋欢螘r(shí)間內(nèi),UDP會(huì)話不止一個(gè),為了方便信息的及時(shí)記錄,設(shè)計(jì)出每個(gè)會(huì)話準(zhǔn)備一個(gè)輸入或者輸出的列隊(duì),其實(shí)這個(gè)列隊(duì)就是鏈表。當(dāng)有會(huì)話狀態(tài)時(shí),這個(gè)數(shù)據(jù)信息就會(huì)被自動(dòng)輸入到鏈表模塊中被處理。當(dāng)UDP接收到數(shù)據(jù)信息時(shí),通過(guò)IP地址和端口號(hào)將UDP接受的數(shù)據(jù)信息放到對(duì)應(yīng)的輸入列隊(duì)中,等待被處理。如果UDP沒(méi)有接受到數(shù)據(jù)信息時(shí),通過(guò)IP地址和端口號(hào)將會(huì)建立一個(gè)新的輸入列隊(duì),等待應(yīng)用程序的處理。如果應(yīng)用程序沒(méi)有給UDP發(fā)送數(shù)據(jù)信息時(shí),UDP根據(jù)IP地址和端口號(hào)自行找到相對(duì)應(yīng)的輸出隊(duì)列,如果應(yīng)用程序沒(méi)有給UDP發(fā)送數(shù)據(jù)信息,UDP會(huì)根據(jù)IP地址和端口號(hào)重新建立一個(gè)輸出隊(duì),等待被處理。
4 遠(yuǎn)程控制的應(yīng)用
當(dāng)可靠連接的TCP協(xié)議未被應(yīng)用系統(tǒng)所提供時(shí),一般是因?yàn)橐韵聝蓚€(gè)原因:首先,TCP在連接與終止的過(guò)程中會(huì)一定程度的降低了通信的實(shí)時(shí)性的特點(diǎn),其次,為了保證高效的TCP協(xié)議就會(huì)導(dǎo)致大量的存儲(chǔ)空間被占用,通訊質(zhì)量得要求這塊已無(wú)法顧及,只能在應(yīng)用層來(lái)實(shí)現(xiàn)。以PC機(jī)作為控制端,以太網(wǎng)接入模塊的應(yīng)用系統(tǒng)為被控端,通過(guò)TCP/IP實(shí)現(xiàn)兩者之間的通信樞紐,當(dāng)連接建立之后,就可以進(jìn)行用戶的認(rèn)證,這一階段可以采用私有的通信模式,而當(dāng)認(rèn)證結(jié)束之后,控制端才能實(shí)現(xiàn)對(duì)被控端的控制以及監(jiān)督。
5 結(jié)語(yǔ)
互聯(lián)網(wǎng)時(shí)代的到來(lái)為人們的生活產(chǎn)生了翻天覆地的變化?;谇度胧絾螜C(jī)片與互聯(lián)網(wǎng)相連和技術(shù)的研究,要想其實(shí)現(xiàn)實(shí)際可操作性,應(yīng)該從多方面考慮。首先,底層硬件API的提供是不是方便容易使用的,但是這個(gè)與硬件平臺(tái)沒(méi)有多大的關(guān)系。其次,單機(jī)片內(nèi)實(shí)現(xiàn)TCP/IP協(xié)議時(shí),所需要占用的資源是否在所能接受的范圍內(nèi)。同時(shí)對(duì)于系統(tǒng)的支持程度和裁減優(yōu)化的空間等都是需要考慮的問(wèn)題。在充分了解嵌入式互聯(lián)網(wǎng)系統(tǒng)技術(shù)的同時(shí),降低成本的使用,會(huì)使得為其日后的推廣做出了重要的基礎(chǔ)。
參考文獻(xiàn)
[1]肖洪詳,邵彭飛,才娟.基于CP2200的嵌入式以太網(wǎng)接口設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007(17):33-35.
[2]Silicon Laboratories Inc. CP2200/1 Complete Datasheet[M].USA: Silicon Laboratories Inc,2006.
[3]王曉菊,潘琢金,杜睿.嵌入式網(wǎng)絡(luò)接口模塊設(shè)計(jì)及協(xié)議實(shí)現(xiàn)[J].沈陽(yáng)航空工業(yè)學(xué)院學(xué)報(bào),2007(1):49-52.
[4]劉偉,崔永鋒,吳相林.TCP/IP 協(xié)議在遠(yuǎn)程單片機(jī)控制系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007(3):93-95.
[5]Forouzan B A, Fegan S C.TCP/IP 協(xié)議族[M].謝希仁,等譯.北京:清華大學(xué)出版社,2006.
[6]曹婕,王耀青.網(wǎng)絡(luò)中控系統(tǒng)中嵌入式以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006(29).