引言
許多測量和控制設(shè)備都是通過串口與其他設(shè)備通信,使設(shè)備間的數(shù)據(jù)交互和遠(yuǎn)程控制受到限制。如果能把串口的數(shù)據(jù)轉(zhuǎn)換成網(wǎng)絡(luò)數(shù)據(jù)格式,組建一個局域網(wǎng)(LAN)來進(jìn)行數(shù)據(jù)的交互與傳輸笼糙,則上述的限制將得到有效的改進(jìn)〔梗考慮到以太網(wǎng)組網(wǎng)技術(shù)的易于理解拳喘、實(shí)現(xiàn)、管理和維護(hù)颤绕,且成本低廉送写、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)靈活的優(yōu)點(diǎn)页梁,應(yīng)用以太網(wǎng)組網(wǎng)技術(shù)來搭建數(shù)據(jù)交互的平臺司澎。其中的關(guān)鍵就是接口轉(zhuǎn)換器的實(shí)現(xiàn)房揭。
DSP芯片作為一種特殊的嵌入式微處理器系統(tǒng),具有嵌入的協(xié)處理器和用于快速數(shù)據(jù)處理的并行數(shù)據(jù)通道氯葬,而且DSP在語音圖像信號處理方面也具有強(qiáng)大功能挡篓。在嵌入式網(wǎng)絡(luò)設(shè)備中引入DSP技術(shù),可以使嵌入式以太網(wǎng)變得更快帚称,成本更低官研,也更容易進(jìn)行功能擴(kuò)充,因此選用DSP芯片作為接口轉(zhuǎn)換器的微控制器世杀。
為提高網(wǎng)絡(luò)通信效率,可以采用自定義的從數(shù)據(jù)鏈路層到應(yīng)用層的網(wǎng)絡(luò)通信協(xié)議肝集,以適應(yīng)特定場合應(yīng)用的需要瞻坝;如果需要,還可以編寫一個自定義協(xié)議和TCP/IP互譯的網(wǎng)關(guān)軟件芙糙,實(shí)現(xiàn)嵌入式網(wǎng)絡(luò)和Internet的連接牢簸。
本文介紹的接口轉(zhuǎn)換器解決了車內(nèi)的數(shù)字式語音通信系統(tǒng)的接口轉(zhuǎn)換問題。
1 接口轉(zhuǎn)換器的硬件設(shè)計
在設(shè)計一個嵌入式系統(tǒng)時鹊逛,不但要考慮系統(tǒng)所要具備的功能渺类,同時還要考慮價格、體積等因素象讶。TMS320C3X[1]系列芯片是TI公司推出的浮點(diǎn)運(yùn)算DSP芯片累换。由于其較高的性價比,TMS320C3X的應(yīng)用極其廣泛盏拐;由于將浮點(diǎn)運(yùn)算與定點(diǎn)運(yùn)算結(jié)合起來待插,具有更高的精度,并且不必考慮運(yùn)算的溢出問題,因此浮點(diǎn)DSP具有更高的性能捷妥,更容易在系統(tǒng)的處理器上實(shí)現(xiàn)高級語言[2]你义。TMS320C32是TMS320系列浮點(diǎn)數(shù)字信號處理器的新產(chǎn)品,在TMS320C30和TMS320C31的基礎(chǔ)上進(jìn)行了簡化和改進(jìn)摩潮。在結(jié)構(gòu)上的改進(jìn)主要包括:可變寬度的存儲器接口况既、更短的指令周期時間、可設(shè)置優(yōu)先級的雙通道DMA處理器组民、靈活的引導(dǎo)程序裝入方式棒仍、可重新定位的中斷向量表以及可選的邊緣/電平觸發(fā)中斷方式等。對TMS320C32的開發(fā)可以用匯編語言邪乍,也可以用C語言降狠。使用匯編語言的優(yōu)點(diǎn)在于,運(yùn)行速度快庇楞,可以充分利用芯片的硬件特性榜配;但開發(fā)速度較慢,程序的可讀性差吕晌。使用C語言的優(yōu)勢在于蛋褥,編程容易、調(diào)試速度快睛驳、可讀性好烙心,可以大大縮短開發(fā)周期;但C語言對于其片內(nèi)沒有映射地址的特殊功能寄存器不能操作乏沸,如IF和IE淫茵、AR0~AR7等。
以太網(wǎng)接口芯片采用CS8900A[3]牲耐。該芯片是Cirrus Logic公司生產(chǎn)的一種局域網(wǎng)信號處理芯片师莫,內(nèi)部集成了片上RAM,其模擬前端包括曼徹斯特編解碼器琐惩、時鐘恢復(fù)電路狮消、10BASE2T收發(fā)器和濾波器及一個AUI(Attachment Unit Interface)接口。CS8900A的MAC(Medium Access Control目溶,媒體訪問控制)引擎負(fù)責(zé)以太網(wǎng)數(shù)據(jù)幀的發(fā)送和接收搪古、檢測和處理沖突,生成和檢測幀引導(dǎo)頭(Preamble)咕隶,自動生成和校驗(yàn)CRC(Cyclical Redundancy Check赁霉,循環(huán)冗余校驗(yàn))碼。芯片在網(wǎng)絡(luò)物理層符合IEEE 802.3以太網(wǎng)標(biāo)準(zhǔn)倚辟,支持全雙工操作瞻替,是嵌入式平臺實(shí)現(xiàn)10 Mbps以太網(wǎng)連接的很好的選擇方案栗沫。
接口轉(zhuǎn)換器的硬件框圖如圖1所示。DSP作為整個硬件模塊的CPU遥倦,SRAM用作外部數(shù)據(jù)存儲器谤绳,F(xiàn)lash用于存儲程序,CPLD或FPGA用于擴(kuò)展DSP的對外接口控制袒哥。虛線框是可擴(kuò)展的模塊缩筛。
2 TMS320VC32與CS8900A的連接方法
CS8900A的20位地址線與TMS320VC32地址線低20位相連;CS8900A的16位數(shù)據(jù)線與TMS320VC32數(shù)據(jù)線低16位相連堡称;數(shù)據(jù)總線高位使能端由A0控制瞎抛。通過一片CPLD擴(kuò)展TMS320VC32的外部控制功能,控制CS8900A的中斷請求却紧、復(fù)位和讀寫操作桐臊。TMS320VC32與CS8900A連接關(guān)系如圖2所示。
設(shè)置以太網(wǎng)接口芯片CS8900A工作于I/O模式晓殊。通過對芯片各寄存器的操作可設(shè)置網(wǎng)絡(luò)終端接口電路的功能和讀取狀態(tài)信息断凶。
CS8900A的主要寄存器有:
LineCTL 決定CS8900A的基本配置和物理接口,設(shè)置初始值為00D3H巫俺,選擇物理接口為10BASE2T认烁。
RxCTL 控制CS8900A接收特定的數(shù)據(jù)報,設(shè)置RxTCL的初始值為0D05H柿癞,接收網(wǎng)絡(luò)上的廣播或目標(biāo)地址與本地物理地址相同的正確數(shù)據(jù)報来鸟。
RxCFG 控制CS8900A接收到特定數(shù)據(jù)報后會引發(fā)接收中斷,RxCFG可設(shè)置為0103H哩讶,收到正確數(shù)據(jù)報時產(chǎn)生接收中斷甲祖。
BusCTL 控制芯片的I/O接口操作,設(shè)置初始值為8017H誊配,打開CS8900A的中斷總控制位鞍伟。
ISQ 中斷狀態(tài)寄存器。內(nèi)部映射接收狀態(tài)寄存器和發(fā)送中斷寄存器內(nèi)容柱称。
Port0 發(fā)送和接收數(shù)據(jù)時盘挠,CPU通過Port0傳輸數(shù)據(jù)饼簸。
TxCMD 發(fā)送控制寄存器臼磁。如果寫入數(shù)據(jù)00C0H,那么網(wǎng)卡芯片在全部數(shù)據(jù)寫入后開始發(fā)送數(shù)據(jù)倾皿。
TxLength 發(fā)送數(shù)據(jù)長度寄存器吊磕。發(fā)送數(shù)據(jù)時,首先寫入發(fā)送數(shù)據(jù)的長度惩阶,然后將數(shù)據(jù)通過Port0寫入芯片挎狸。
系統(tǒng)上電時扣汪,首先對CS8900A進(jìn)行初始化,寫寄存器LineCTL锨匆、RxCTL崭别、RxCFG、BusCTL恐锣。發(fā)送數(shù)據(jù)時茅主,寫控制寄存器TxCMD,并將發(fā)送數(shù)據(jù)長度寫入TxLength土榴,然后將數(shù)據(jù)依次寫入Port0口诀姚,數(shù)據(jù)就可以發(fā)送出去了;接收到數(shù)據(jù)時玷禽,CS8900 A將觸發(fā)中斷赫段,在其中斷處理程序中可以接收數(shù)據(jù)并處理。
3 接口轉(zhuǎn)換器的軟件設(shè)計
3.1 自定義網(wǎng)絡(luò)協(xié)議
在嵌入式網(wǎng)絡(luò)系統(tǒng)中矢赁,可以使用TCP/IP協(xié)議糯笙,但不夠經(jīng)濟(jì)。原因是TCP/IP協(xié)議過于龐大瓤计,過于復(fù)雜智谓,以至于效率低下。一方面是嵌入式系統(tǒng)各單元內(nèi)部CPU的處理速度受限圾峭;另一方面嚎蛀,在某些特定場合特定任務(wù)的應(yīng)用環(huán)境中TCP/IP功能冗余,阻礙了硬件效能的最大發(fā)揮堤谴。為此缰畦,針對特定的應(yīng)用,制定相應(yīng)的自定義網(wǎng)絡(luò)協(xié)議栋固,靈活方便肥稠,針對性強(qiáng),經(jīng)濟(jì)實(shí)用埋署。
下面單從數(shù)據(jù)應(yīng)用的角度玫桅,定義一個簡單、實(shí)用的以太網(wǎng)傳輸協(xié)議绷匀。
3.2協(xié)議層次
系統(tǒng)參照ISO的OSI模型哭振,采用縮減的網(wǎng)絡(luò)體系結(jié)構(gòu)。如圖3所示楔绞,網(wǎng)絡(luò)體系結(jié)構(gòu)分為3層:物理層结闸、數(shù)據(jù)鏈路層和應(yīng)用層。物理層規(guī)定網(wǎng)絡(luò)的拓?fù)湫问郊巴ㄐ判盘柕碾姎馓匦跃贫洌粩?shù)據(jù)鏈路層實(shí)現(xiàn)點(diǎn)到點(diǎn)的通信規(guī)程桦锄,完全執(zhí)行IEEE802.3的CSMA/CD協(xié)議扎附。
3.3 幀結(jié)構(gòu)
以太網(wǎng)幀結(jié)構(gòu)如下:
物理層的前同步碼(即物理幀前導(dǎo)符+物理幀界定符)8字節(jié)由硬件自動生成。除去這8個字節(jié)结耀,將其余字段的長度加起來留夜,可以得到以太網(wǎng)幀的最大長度為1 518字節(jié),最小長度則為64字節(jié)图甜;加上8字節(jié)的前同步碼香伴,即可得到最小幀長度為576位。這樣長度的幀能夠保證所有沖突都可以檢測到具则。這是因?yàn)镮EEE 802.3標(biāo)準(zhǔn)中即纲,兩個站點(diǎn)的最遠(yuǎn)距離小于2 500 m,由4個中繼器連接而成博肋,其沖突窗口為2倍電纜傳播延遲加上4個中繼器的雙向延遲之和低斋,合計為51.2μs。就10 Mbps以太網(wǎng)而言刹震,這個時間段內(nèi)等于發(fā)送64字節(jié)(即512位)的數(shù)據(jù)司逗。
使用CSMA/CD作為一種訪問控制方式,意味著最短數(shù)據(jù)幀長度與網(wǎng)絡(luò)上最長傳輸延遲時間間隔有著密切的關(guān)系环自。要保證在發(fā)送過程中出現(xiàn)沖突時改佛,沖突域內(nèi)的所有結(jié)點(diǎn)都應(yīng)該知道發(fā)生了沖突,以便采取適當(dāng)?shù)拇胧┏浇蟆_@就需要最短數(shù)據(jù)幀長度必須大于網(wǎng)絡(luò)上的最長傳輸延遲時間間隔遵奇,再加上阻塞附加時間和同步延遲時間等。這就是IEEE 802.3標(biāo)準(zhǔn)中最短幀長度為64字節(jié)的由來赏赔。[4]
其中應(yīng)用層幀類型分為數(shù)據(jù)幀和數(shù)據(jù)確認(rèn)幀兩種杏恍,具體結(jié)構(gòu)如下:
由于數(shù)據(jù)幀長度可變,又由于數(shù)據(jù)確認(rèn)幀的MAC層長度僅為18字節(jié)雷倦,故在網(wǎng)絡(luò)控制器初始化時須設(shè)置MAC層PAD填充功能(即MAC幀長度少于64字節(jié)時胆狐,網(wǎng)絡(luò)控制器自動將其填充至64字節(jié)后再交給物理層)。
自定義數(shù)據(jù)幀的預(yù)留管理單元還可以制定一些簡單的控制或管理信息幀肺灭,以便更好地擴(kuò)充功能和組織軟件虱而。限于篇幅,茲不贅述开泽。如想連入Internet牡拇,需要在系統(tǒng)中加入一個能夠轉(zhuǎn)換本協(xié)議和TCP/IP協(xié)議的前端網(wǎng)關(guān)(實(shí)質(zhì)上是一個交互翻譯的軟件系統(tǒng))。
3.4程序設(shè)計流程
本接口轉(zhuǎn)換器所要實(shí)現(xiàn)的功能是把從RS232串口接收到的串口數(shù)據(jù)轉(zhuǎn)換成以太網(wǎng)幀格式發(fā)送到以太網(wǎng)眼姐,并把從以太網(wǎng)上接收到的幀數(shù)據(jù)解包轉(zhuǎn)換到串口傳送诅迷。程序設(shè)計中包含初始化程序佩番、主循環(huán)众旗、串行接口程序和網(wǎng)絡(luò)通信接口程序罢杉。
程序運(yùn)行首先進(jìn)行初始化工作,包括初始化CS8900A贡歧、初始化串口和初始化一些參數(shù)滩租,然后進(jìn)入主循環(huán)。主循環(huán)內(nèi)循環(huán)運(yùn)行CS8900A中斷服務(wù)查詢程序和串口緩沖區(qū)查詢程序利朵,若有CS8900A中斷申請律想,則中斷調(diào)用網(wǎng)絡(luò)通信接口程序;若串口緩沖區(qū)有數(shù)據(jù)绍弟,則中斷調(diào)用串行接口程序霸碰。流程如圖4所示。
(1)串行接口程序
串行接口程序是DSP通過16C2550向外部數(shù)據(jù)口進(jìn)行數(shù)據(jù)接收郁表、發(fā)送的程序匣描,目的是進(jìn)行數(shù)據(jù)傳輸。此程序包括串口發(fā)送接收程序及數(shù)據(jù)組織程序罕腿。發(fā)送和接收通過中斷并發(fā)處理桶眠。整個串口發(fā)送程序在主循環(huán)中調(diào)用。其模塊的流程為:
發(fā)送 收到網(wǎng)絡(luò)串口數(shù)據(jù)→打開數(shù)據(jù)口→中斷發(fā)送看群;
接收 中斷接收→整理串口數(shù)據(jù)→發(fā)送到網(wǎng)絡(luò)上去沦煤。發(fā)送和接收邏輯流程如圖5所示。
(2)網(wǎng)絡(luò)通信接口程序
網(wǎng)絡(luò)接口程序是DSP通過CS8900A對系統(tǒng)的其他單元發(fā)送命令和接收信息的程序涯锅,目的是與系統(tǒng)的其他單元通信寇祈,接收與發(fā)送數(shù)據(jù)包和信令數(shù)據(jù)包。此程序包括網(wǎng)絡(luò)數(shù)據(jù)接收程序漱南、網(wǎng)絡(luò)數(shù)據(jù)發(fā)送程序投嫂、數(shù)據(jù)組織程序。發(fā)送與接收服務(wù)程序流程如圖6所示蔗彤。
結(jié)語
該接口轉(zhuǎn)換器已成功地應(yīng)用于車內(nèi)的數(shù)字式語音通信系統(tǒng)之中川梅。結(jié)果表明,本方案成功地實(shí)現(xiàn)了數(shù)據(jù)的實(shí)時傳輸然遏,可以給各種應(yīng)用RS232串口進(jìn)行數(shù)據(jù)傳輸?shù)那度胧较到y(tǒng)的聯(lián)網(wǎng)操作提供接口解決方案贫途。本方案預(yù)留了升級擴(kuò)展的功能。接入PCM編碼器并對程序作出相應(yīng)改動待侵,可實(shí)現(xiàn)語音的數(shù)字化網(wǎng)絡(luò)通信丢早;接入A/D轉(zhuǎn)換器和各種傳感器可實(shí)現(xiàn)數(shù)據(jù)采集系統(tǒng)的聯(lián)網(wǎng)。
聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng)秧倾,轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享怨酝,并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé),也不構(gòu)成任何其他建議那先。本站部分作品是由網(wǎng)友自主投稿和發(fā)布农猬、編輯整理上傳赡艰,對此類作品本站僅提供交流平臺,不為其版權(quán)負(fù)責(zé)斤葱。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻慷垮、圖片、文字如涉及作品版權(quán)問題帮廉,請第一時間告知徽榄,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容,以保證您的權(quán)益闲耿!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn胰薪。
- 暫無反饋
編輯推薦
- 2025新年特刊:打造新質(zhì)生產(chǎn)力,智啟未來新篇章
- 定義制造業(yè)未來的數(shù)控加工中心技術(shù)專題
- 航空航天及交通領(lǐng)域先進(jìn)制造技術(shù)應(yīng)用專題
- 解碼消費(fèi)電子產(chǎn)品生產(chǎn)的數(shù)字化之路技術(shù)專題
- 精密智能機(jī)床,助力制造升級技術(shù)專題
- 汽車輕量化驅(qū)動下的零部件加工應(yīng)用專題
- 高性能銑刀實(shí)現(xiàn)高精加工生產(chǎn)技術(shù)專題
- 航空航天發(fā)動機(jī)解決方案專題
- 高效齒輪加工生產(chǎn)技術(shù)方案專題
- 金屬加工液的性能不止?jié)櫥夹g(shù)應(yīng)用專題