當前位置:首頁 > 芯聞號 > 基礎知識科普站
[導讀]隨著技術的發(fā)展,8位MCU市場已逐步趨向穩(wěn)定,32位MPU代表著嵌入式技術的發(fā)展方向,正在加速發(fā)長。

1 引言

目前,嵌入式系統(tǒng)已經(jīng)廣泛應用到人們的工作、生活中,2003年我國嵌入式系統(tǒng)應用產(chǎn)品經(jīng)濟總量達l 000億元。隨著技術的發(fā)展,8位MCU市場已逐步趨向穩(wěn)定,32位MPU代表著嵌入式技術的發(fā)展方向,正在加速發(fā)長。在32位嵌入式微處理器市場上,基于ARM內(nèi)核的微處理器處于絕對的領導地位。

嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,軟、硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)除了具有高效、穩(wěn)定、性能專一等優(yōu)點外,還具有實時性較高的操作系統(tǒng)。嵌入式系統(tǒng)與通信、網(wǎng)絡技術的結合可以極大增強網(wǎng)絡的智能化與靈話性,拓展通信功能,從而實現(xiàn)各種通信系統(tǒng)之間的互聯(lián)互通。本文給出了一種適合于中/低端應用的通信平臺設計方案,它可支持以太網(wǎng)之間的數(shù)據(jù)傳輸,并且具有RS232、RS485、USB等接口。文中圍繞嵌入式Linux環(huán)境設計了基于MC9328MXl(ARM920T)最小系統(tǒng)的硬件通信平臺,從而實現(xiàn)了嵌入式Socket通信。

基于MC9328MXl的Socket通信設計與實現(xiàn)

2 最小系統(tǒng)分析

Motorola公司的MC9328MXl是以ARM920T為內(nèi)核的高性價比16/32位RISC微控制器,內(nèi)含一個ARM公司設計的16/32位ARM920T RISC處理器核,ARM920T為低功耗,高性能16/32位核,最適合于對價格及功耗敏感的應用場合。除了ARM920T核以外,MC9328MXl還包含了許多外圍功能模塊。處理器和這些模塊都集成在核心板上,其具體結構如圖1所示。

由圖1可見,除了ARM920TDMI內(nèi)核外,MC9328MXl還集成了多個外圍功能模塊:一個LCD控制器、一個脈沖調(diào)制控制器、一個USB控制器及多個擴展通道,但是沒有集成用于網(wǎng)絡通信的以太網(wǎng)控制器。所以,需要設計包含合適的以太網(wǎng)控制器的外圍電路。

基于MC9328MXl的Socket通信設計與實現(xiàn)

3 外圍電路設計

本系統(tǒng)選用與MC9328MXl相匹配的CS8900A作為以太網(wǎng)控制器。CS8900A是Cirrus Logic公司生產(chǎn)的低功耗16位以太網(wǎng)控制器,功能強大。該器件的突出特點是使用靈活,其物理層接口、數(shù)據(jù)傳輸模式和工作模式等都能根據(jù)需要動態(tài)調(diào)整,通過內(nèi)部寄存器的設置來適應不同的應用環(huán)境。

CS8900A內(nèi)部結構框圖如圖2所示,內(nèi)部功能模塊主要是802.3介質(zhì)訪問控制塊(MAC)。802.3介質(zhì)訪問控制塊支持全雙工工作模式,完全依照IEEE802.3以太網(wǎng)標準,采用100引腳TQFP封裝,負責處理有關以太網(wǎng)數(shù)據(jù)幀的發(fā)送和接收,包括:沖突檢測、幀頭的產(chǎn)生和檢測、CRC校驗碼的生成和驗證。通過對發(fā)送控制寄存器(TxCMD)的初始化配置,MAC能自動完成幀的沖突后重傳。如果幀的數(shù)據(jù)部分少于46個字節(jié),它能生成填充字段使數(shù)據(jù)幀達到802.3所要求的最短長度。

基于MC9328MXl的Socket通信設計與實現(xiàn)

CS8900A的主要特點如下:

符合IEEE802.3以太網(wǎng)標準,并帶有ISA接口;

片內(nèi)4KB RAM;

適用于I/O工作模式、存儲器工作模式和DMA工作模式;

帶有傳送、接收低通濾波的lOBase2T連接端口;

支持lOBase2,lOBase5和lOBase2F的AUI接口;

自動生成報頭,自動進行CRC檢驗,沖突后自動重發(fā);

最大電流消耗為55mA(5 V電源);

全雙工工作模式;

支持外部EEPROM。

另外,要實現(xiàn)CS8900A與主機之間的數(shù)據(jù)通訊,在電路設計時可根據(jù)具體情況靈活選擇合適的數(shù)據(jù)傳輸模式。CS8900A支持的傳輸模式有:I/O模式和Memory模式,另外還有DMA模式。其中,I/O模式是訪問CS8900A存儲區(qū)的缺省模式,簡單易用。

由MC9328MXl的引腳描述可以看出,MCU的數(shù)據(jù)是通過D[3l:0]傳輸?shù)?,而以太網(wǎng)控制器CS8900A最多使用16位傳輸模式,所以MC9328MXl的數(shù)據(jù)總線前16位(D[15:0])應與CS8900A的SD[O:15]相連,為解決速度不匹配的問題,需使用具有緩沖功能的總線收發(fā)器。從成本考慮,該系統(tǒng)采用兩個8位的74LS245。地址信息通過MC9328MXI地址總線接口的A[DO:03]與CS8900A的SA[00:03]通過緩沖器74HC244相連,A[04:19]與SA[04:19]直接相連用于設置網(wǎng)卡的初始基址。另外,CS8900A通過一個帶扼流線圈的隔離變壓器20F001N將CPU發(fā)送的數(shù)據(jù)(變比為l:1.414)發(fā)送到網(wǎng)絡上;接收數(shù)據(jù)時,網(wǎng)絡傳送的數(shù)據(jù)經(jīng)過隔離變壓器(變比為1:1)。隔離變壓器的作用主要是將外部線路與CS8900A隔開,防止干擾和燒壞元件,實現(xiàn)帶電的插拔功能。XTALl與XTAL2之間的晶振為CS8900A提供穩(wěn)定的時鐘脈沖。其電路圖如圖3所示。

4 基于嵌入式Linux的Socket通信

基于嵌入式Linux的開發(fā)環(huán)境一般由裝有交叉編譯器的PC機和硬件開發(fā)板組成。本設計以PC宿主機作為客戶端,以MC9328MXl的開發(fā)板作為服務器實現(xiàn)通信。先由PC機將客戶機程序(server)編譯好后,通過串口寫入開發(fā)板,然后將開發(fā)板與PC機通過以太網(wǎng)口建立連接。

Socket(套接字)是通過標準UNIX文件描述符和其他程序通訊的一個方法,其實質(zhì)是提供了進程通信的端點,可以看作是一種特殊的管道。通過Sock-et編程可以實現(xiàn)網(wǎng)絡通信。一個完整的套接字有一個相關的描述:協(xié)議、本地地址、本地端口、遠程地址、遠程端口。

通用套接口地址結構struct sockaddr的定義如下:

套接字操作函數(shù)主要有:

(1)創(chuàng)建一個Sockets

sockfd=socket (family,type,protocol)

其中由地址類(family)參數(shù)指定該Socket使用的地址類。由類型(type)參數(shù)規(guī)定所請求的通信類型。協(xié)議(protocol)參數(shù)一般為零,使得默認的協(xié)議將自動被選取。

(2)連接本地地址

本函數(shù)的主要功能是將一個規(guī)定的地址與一個Sockets結合,一個服務進程要使用如下函數(shù):bind(sockfd,address,addrlen)其中,sockfd參數(shù)是由socket()調(diào)用返回的sockets描述符。address指向一個地址結構,addrlen參數(shù)規(guī)定了地址的字節(jié)長度。

(3)客戶進程連接到服務進程

用此函數(shù)實現(xiàn)客戶進程對服務進程連接的初始化。此系統(tǒng)調(diào)用是:

connect(sockfd,address,addrlen)

其中,sockfd是本地Sockets的Sockets描述符。address規(guī)定目的機上服務進程正在使用的地址,addrlen規(guī)定了地址的字節(jié)長度。

當connect()函數(shù)被調(diào)用時,如果客戶的Sockets還沒有結合到一個本地地址,則系統(tǒng)自動選擇一個本地地址和一個適當?shù)亩丝谔?,并且把它們和該客戶的Sockets相結合。

(4)網(wǎng)絡監(jiān)聽

int listen(int sockfd,int backlog);

sockfd是Socket系統(tǒng)調(diào)用返回的Socket描述符;backlog指定在請求隊列中允許的最大請求數(shù),進入的連接請求將在隊列中等待accept ()(參考下文)。backlog對隊列中等待服務的請求的數(shù)目進行了限制,大多數(shù)系統(tǒng)缺省值為20。如果一個服務請求到來時,輸入隊列已滿,該Socket將拒絕連接請求,客戶將收到一個出錯信息。當出現(xiàn)錯誤時listen函數(shù)返回-l,并置相應的errno錯誤碼。

(5)接收請求函數(shù)

accept()函數(shù)讓服務器接收客戶的連接請求。在建立好輸入隊列后,服務器就調(diào)用accept函數(shù),然后睡眠并等待客戶的連接請求。

int accept(int sockfd,void*addr,int*addrlen);

sockfd是被監(jiān)聽的Socket描述符,addr通常是一個指向sockaddr_in變量的指針,該變量用來存放提出連接請求服務的主機的信息;addrlen通常為一個指向值為sizeof(struct sockaddr_in)的整型指針變量。

(6)數(shù)據(jù)傳輸

Send()和Recv()這兩個函數(shù)應用于面向連接的Socket上進行數(shù)據(jù)傳輸。

Send()函數(shù)原型為:int send(int sockfd,const void*msg,int len,int flags);sockfd是用來傳輸數(shù)據(jù)的socket描述符;msg是一個指向要發(fā)送數(shù)據(jù)的指針;len是以字節(jié)為單位的數(shù)據(jù)長度;flags一般情況下置為0。

Recv ()函數(shù)原型為:int Recv(int sockfd,void*buf int len,unsigned int flags);sockfd是接受數(shù)據(jù)的Socket描述符;buf是存放接收數(shù)據(jù)的緩沖區(qū);len是緩沖的長度。flags也被置為O。Recv()返回實際上接收的字節(jié)數(shù),當出現(xiàn)錯誤時,返回-1并置相應的errno值。

本部分設計的目的是通過分析Socket的編程方法,編寫一個服務器程序server,用arm-linux-gcc編譯后運行在ARM開發(fā)板上,一個客戶端程序client用gcc編譯后在PC上運行。

總體編程模型即客戶機與服務器的通信過程見圖4。

4.1 服務器端

(1)初始化

4.2 客戶機端

(1)通過服務器域名獲得服務器的IP地址

(2)創(chuàng)建一個Socket(實現(xiàn)方法與服務器端相同)

(3)與服務器建立連接

這樣,給ARM開發(fā)板CS8900A網(wǎng)卡分配地址,并且編譯server和client程序后,可以將開發(fā)板用作服務器,PC用作客戶端,實現(xiàn)兩者的通信。

5 結束語

本文設計開發(fā)了基于MC9328MXl的以太網(wǎng)通信系統(tǒng),并利用嵌入式linux操作系統(tǒng)強大的網(wǎng)絡功能實現(xiàn)了Socket通信。文中的客戶端應用程序已經(jīng)在基于ARM9TDMI核的MC9328MXl處理器的嵌入式開發(fā)平臺上成功運行,應用宿主PC機的服務器端應用程序成功實現(xiàn)了Socket通信。當然,也可以把目標硬件開發(fā)平臺當作服務器端,而把宿主PC機當作客戶端來進行雙向文件傳輸。

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

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

關鍵字: 阿維塔 塞力斯 華為

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

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

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

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

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

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

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

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

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

關鍵字: BSP 信息技術
關閉
關閉