當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]本文基于ARM720T內(nèi)核的HMS30C7202嵌入式系統(tǒng)和Redhat9.0操作系統(tǒng),對基于TCP/IP協(xié)議的嵌入式板機(jī)網(wǎng)絡(luò)通信程序的設(shè)計(jì)與開發(fā)技術(shù)進(jìn)行了研究,設(shè)計(jì)了程序,實(shí)現(xiàn)了PC機(jī)和板子之間的網(wǎng)絡(luò)通信服務(wù)。

摘 要:由于嵌入式系統(tǒng)具有體積小,性能強(qiáng),功耗低,可靠性高以及面向行業(yè)應(yīng)用的突出特征,目前已經(jīng)獲得廣泛應(yīng)用。本文基于ARM720T內(nèi)核的HMS30C7202嵌入式系統(tǒng)和Redhat9.0操作系統(tǒng),對基于TCP/IP協(xié)議的嵌入式板機(jī)網(wǎng)絡(luò)通信程序的設(shè)計(jì)與開發(fā)技術(shù)進(jìn)行了研究,設(shè)計(jì)了程序,實(shí)現(xiàn)了PC機(jī)和板子之間的網(wǎng)絡(luò)通信服務(wù)。
關(guān)鍵詞:   HMS30C7202;TCP/IP;嵌入式系統(tǒng);通信

引言

嵌入式系統(tǒng)是繼IT網(wǎng)絡(luò)技術(shù)之后,又一個新的技術(shù)發(fā)展方向。由于嵌入式系統(tǒng)具有體積小,性能強(qiáng),功耗低,可靠性高以及面向行業(yè)應(yīng)用的突出特征,目前已經(jīng)廣泛的應(yīng)用于軍事國防,消費(fèi)電子,網(wǎng)絡(luò)通信,工業(yè)控制等各個領(lǐng)域。隨著計(jì)算機(jī)技術(shù)與通信技術(shù)的發(fā)展,嵌入式系統(tǒng)的研究與開發(fā)有著越來越重要的實(shí)際意義?,F(xiàn)階段Internet的普及,使市場對嵌入式設(shè)備的網(wǎng)絡(luò)功能和性能提出了更高的要求。8/16位單片機(jī)的速度和內(nèi)存較難滿足嵌入式設(shè)備的網(wǎng)絡(luò)要求,因此32位RISC處理器越來越受到青睞。ARM公司自1990年正式成立以來,在32位CPU開發(fā)領(lǐng)域不斷取得突破,已經(jīng)處于業(yè)界領(lǐng)軍地位,加上其設(shè)計(jì)的芯核具有功耗低、成本低等顯著優(yōu)點(diǎn),因此獲得眾多的半導(dǎo)體廠家和整機(jī)廠商的大力支持,在32位嵌入式應(yīng)用領(lǐng)域獲得了巨大的成功。

嵌入式系統(tǒng)的網(wǎng)絡(luò)服務(wù)通信設(shè)備作為嵌入式系統(tǒng)重要的一個組成部分具有很強(qiáng)的實(shí)用性和研究價值,為遠(yuǎn)程的控制和網(wǎng)內(nèi)信息傳輸提供了一個很好的手段。本文基于ARM720T內(nèi)核的HMS30C7202嵌入式系統(tǒng)和Redhat9.0操作系統(tǒng),對基于TCP/IP協(xié)議的嵌入式板機(jī)網(wǎng)絡(luò)通信程序的設(shè)計(jì)與開發(fā)技術(shù)進(jìn)行了研究,實(shí)現(xiàn)了板機(jī)之間的通信,為以后網(wǎng)絡(luò)服務(wù)在實(shí)際環(huán)境中的應(yīng)用打下了堅(jiān)實(shí)的基礎(chǔ)。

1.       HMS30C7202開發(fā)板簡介

HMS30C7202是32位高集成度低功耗微處理器,是由ARM720T內(nèi)核和其他一些外圍接口器件組成,支持8K的數(shù)據(jù)與指令Cache,支持段式和頁式存儲的MMU,寫緩沖器及AMBA接口。HMS30C7202采用0.25mm低功耗CMOS工藝片內(nèi)電壓2.5V,I/O支持3.3V電壓,采用了256管腳QFP/BGA封裝。HMS30C7202片上資源十分豐富,具有極高的集成度,非常適用于嵌入式系統(tǒng)應(yīng)用。主要應(yīng)用于PDA,智能電話,個人音頻設(shè)備等場合。芯片HMS30C7202支持的內(nèi)外圍設(shè)備包括多通道DMA(直接存儲器存?。?,3個定時器和一個看門狗定時器,智能中斷控制器,存儲器控制器(如ROM,F(xiàn)lash,SRAM,SDRAM),電源管理單元LCD控制器,定時時鐘(32 .768kHz晶振),紅外通訊接口(支持SIR),4個串口(兼容16C550),PS2外部鍵盤/鼠標(biāo)接口,2通道PWM接口,矩陣鍵盤控制接口(8*8),普通I/O口,MMC/SMC卡接口,2個CAN接口,USB接口,片內(nèi)ADC接口模塊(可用于電池檢測,音頻輸入,觸摸屏),片內(nèi)DAC接口模塊(8bit立體音頻輸出),3個PLL時鐘JTAG調(diào)試接口等。

網(wǎng)絡(luò)傳輸是現(xiàn)在最為重要的數(shù)據(jù)傳輸途徑之一,由于HMS30C7202本身并沒有以太網(wǎng)控制模塊,所以需要一個與之匹配的控制芯片,比如CS8900,CS8900是單芯片全雙工的以太網(wǎng)控制器,配合必要的數(shù)字和模擬電路合成了完整的以太網(wǎng)電路,其主要結(jié)構(gòu)包括ISA總線接口,802.3MAC,buffer,串行EEPRCM接口和帶有10BABE—T和AUI模擬前端。HMS30C7202通過操作CS8900的控制寄存器和讀寫CS8900的內(nèi)部數(shù)據(jù)寄存器,實(shí)現(xiàn)網(wǎng)絡(luò)的鏈路層連接。                             

(CS8900與開發(fā)板連接示意圖)

2 .  TCP/IP協(xié)議簡介

TCP/IP協(xié)議是一組包括TCP (Transfer Controln Protocol)協(xié)議和IP(Internet Protocol)協(xié)議,UDP(User Datagram Protocol)協(xié)議、ICMP(Internet Control Message Protocol)協(xié)議和其他一些協(xié)議的協(xié)議組。

     絕大多數(shù)的客戶-服務(wù)器應(yīng)用程序都使用TCP或UDP

TCP(傳輸控制協(xié)議)以連接為基礎(chǔ),也就是說兩臺電腦必須先建立一個連接,然后才能傳輸數(shù)據(jù)。事實(shí)上,發(fā)送和接收的電腦必須一直互相通訊和聯(lián)系。

UDP(使用者數(shù)據(jù)報(bào)協(xié)議)它是一個無連接服務(wù),數(shù)據(jù)可以直接發(fā)送而不必在兩臺電腦之間建立一個網(wǎng)絡(luò)連接。它和有連接的TCP相比,占用帶寬少,但是你不知道你的數(shù)據(jù)是否真正到達(dá)了你的客戶端,而客戶端收到的數(shù)據(jù)也不知道是否還是原來的發(fā)送順序。

在此次程序的編寫和調(diào)試過程中我們應(yīng)用TCP協(xié)議。

3.       程序設(shè)計(jì)

此程序設(shè)計(jì)是自動售貨機(jī)實(shí)現(xiàn)網(wǎng)絡(luò)化的重要基礎(chǔ),是校園網(wǎng)絡(luò)化建設(shè)的組成部分之一?,F(xiàn)階段高校內(nèi)部自動售貨機(jī)多為投幣消費(fèi)模式,貨幣識別系統(tǒng)是實(shí)現(xiàn)此種消費(fèi)模式的重要硬件設(shè)備,此設(shè)備成本高,穩(wěn)定性差,制約了自動售貨機(jī)的普及。通過在自動售貨機(jī)中嵌入ARM,并實(shí)現(xiàn)嵌入式系統(tǒng)的網(wǎng)絡(luò)化,可以實(shí)現(xiàn)自動售貨機(jī)的刷卡式消費(fèi),而且可以遠(yuǎn)程查詢自動售貨機(jī)的狀態(tài)信息,使管理者及時掌握自動售貨機(jī)的狀態(tài)。所以此程序的設(shè)計(jì)實(shí)現(xiàn)具有很強(qiáng)的現(xiàn)實(shí)意義。

此程序設(shè)計(jì)是基于客戶機(jī)和服務(wù)器模式進(jìn)行的(如下圖)。服務(wù)器上建立套接字,綁定后用listen()函數(shù)監(jiān)聽綁定端口,通過accept()函數(shù)準(zhǔn)備接收或發(fā)送信息??蛻舳送瑯咏⑻捉幼?,但是不綁定端口,直接通過connect()函數(shù)與服務(wù)器建立連接,進(jìn)而發(fā)送或接受數(shù)據(jù)。

 


本文分別以ARM板為服務(wù)器端和客戶端來介紹具體程序。分別實(shí)現(xiàn)了兩種模式下的TCP通信。即:ARM板作為服務(wù)器端,PC機(jī)作為客戶端。ARM板作為客戶端,PC機(jī)作為服務(wù)器端。用以太網(wǎng)口連接,實(shí)現(xiàn)信息的通訊。

模式一:ARM板作為服務(wù)器端,PC機(jī)作為客戶端。按流程編寫具體程序如下:

#define MYPORT 3490  //服務(wù)器監(jiān)聽的端口

#define BACKLOG 10  //能夠同時接受的連接數(shù)量

int sockfd,newfd; //在sockfd上進(jìn)行監(jiān)聽,用newfd接受新的連接

struct sockaddr_in my_addr;  //存放自己的地址信息

struct sockaddr_in their_addr;  //存放連接者的地址信息

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)   

{

       perror("socket");

       exit(1); 

       }  //建立套接字,判斷是否出錯,如果出錯,返回出錯信息

my_addr.sin_family = AF_INET;   //主機(jī)字節(jié)順序

   my_addr.sin_port = htons(MYPORT);  //網(wǎng)絡(luò)字節(jié)順序

 my_addr.sin_addr.s_addr = INADDR_ANY;  //將本機(jī)IP自動填充

   bzero(&(my_addr.sin_zero),8);  //結(jié)構(gòu)其他部分清零 

if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1)

{

 perror("bind");

   exit(1);

}  //綁定本地IP地址和端口

if (listen(sockfd, BACKLOG) == -1)   

 perror("listen"); 

 exit(1); 

   }  //監(jiān)聽端口

while(1)

{

sin_size = sizeof(struct sockaddr_in); 

if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1) { 

 perror("accept"); 

 continue; 

 }  //返回新的套接字描述符,就是跟遠(yuǎn)程計(jì)算機(jī)的連接,第一個套接字描述符仍然在機(jī)器原來的哪個端口listen()

if (!fork())  //建立子進(jìn)程處理連接

if (numbytes=(recv(new_fd, buf, maxdatasize,0)) == -1)

 {

  perror("recv");

 exit(1);

    }  //接收客戶端發(fā)送的信息進(jìn)緩沖區(qū)

               close(newfd); //關(guān)閉套接字

      程序?qū)崿F(xiàn)在ARM板上監(jiān)聽3490端口,準(zhǔn)備接收建立連接的遠(yuǎn)程計(jì)算機(jī)送來的信息。printf("Received: %s",buf);可以顯示緩沖區(qū)中遠(yuǎn)程計(jì)算機(jī)送來的信息。

模式二:ARM板作為客戶端,PC機(jī)作為服務(wù)器端。按流程編寫程序如下:

#define PORT 3490   //定義遠(yuǎn)程端口信息

#define DEST_IP "210.43.8.21"  //定義遠(yuǎn)程計(jì)算機(jī)IP信息

struct sockaddr_in their_addr;  //定義結(jié)構(gòu)存放遠(yuǎn)程計(jì)算機(jī)地址

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)

            perror("socket"); 

            exit(1); 

        }  //建立套接字

if (connect(sockfd, (struct sockaddr *)&their_addr,sizeof(struct sockaddr)) == -1)

            perror("connect"); 

             exit(1); 

        }  //連接遠(yuǎn)程計(jì)算機(jī)

if ((send(sockfd, "hello,my world! ", MAXDATASIZE, 0)) == -1)

            perror("send");

            exit(1); 

        }  //向服務(wù)器發(fā)送數(shù)據(jù)

     close(sockfd);  //發(fā)送完成關(guān)閉套接字

     程序?qū)崿F(xiàn)了從ARM板通過3490端口連接遠(yuǎn)程計(jì)算機(jī),連接成功后發(fā)送數(shù)據(jù)。

此程序?qū)崿F(xiàn)了板機(jī)之間的信息通訊,為自動售貨機(jī)與服務(wù)器之間的通信打下了堅(jiān)實(shí)基礎(chǔ)。為自動售貨機(jī)的網(wǎng)絡(luò)化提供了一個可行的手段。

4.總結(jié)

    TCP/IP協(xié)議已成為目前最為重要的以太網(wǎng)協(xié)議,TCP通信已經(jīng)成為嵌入式系統(tǒng)有線通信的主要方式。ARM板既可以作為客戶端也可以作為服務(wù)器端,這種通信方式應(yīng)用廣泛,具有很高的研究價值。

    本文作者創(chuàng)新點(diǎn)在于對基于TCP/IP協(xié)議的嵌入式板機(jī)網(wǎng)絡(luò)通信程序的設(shè)計(jì)與開發(fā)技術(shù)進(jìn)行了研究,給出了基于TCP協(xié)議的板機(jī)通信程序的編寫方法,實(shí)現(xiàn)了PC機(jī)與ARM板的通信。為以后基于網(wǎng)絡(luò)的嵌入式系統(tǒng)的應(yīng)用和通訊程序開發(fā)打下了堅(jiān)實(shí)的基礎(chǔ)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉