季國(guó)華
摘 要:在嵌入式系統(tǒng)中接入以太網(wǎng)包含了PC機(jī)+以太網(wǎng)+嵌入式設(shè)備的集中式方案、嵌入式系統(tǒng)+以太網(wǎng)控制模塊的分布式方案、RTOS+嵌入式系統(tǒng)微控制器方案、虛擬軟件包+嵌入式微控制器方案、EMIT協(xié)議和MCU+emgateway協(xié)議方案5種。文章使用的DSP芯片為T(mén)MS320F2812,選擇93C46以太網(wǎng)適配器,RTL8019AS作為以太網(wǎng)控制器芯片,將DSP芯片與以太網(wǎng)連接后,使用TCP/IP協(xié)議棧,從而完成了硬件系統(tǒng)的連接。之后進(jìn)行軟件程序的設(shè)計(jì),對(duì)DSP芯片和以太網(wǎng)控制芯片驅(qū)動(dòng)數(shù)據(jù)執(zhí)行初始化,設(shè)計(jì)好中斷服務(wù)程序,以配合數(shù)據(jù)接收程序的運(yùn)行,通過(guò)數(shù)據(jù)接收程序讀取網(wǎng)卡內(nèi)部緩存幀,并最終存儲(chǔ)到內(nèi)存中,再由數(shù)據(jù)發(fā)送程序?qū)?shù)據(jù)包發(fā)送到以太網(wǎng)中,從而完成了DSP與遠(yuǎn)程PC機(jī)的網(wǎng)絡(luò)通信。
關(guān)鍵詞:DSP嵌入式系統(tǒng);DSP芯片;以太網(wǎng)適配器;以太網(wǎng)控制器芯片
嵌入式系統(tǒng)是一種以控制、監(jiān)控或輔助各種操作機(jī)器與設(shè)備為目的的裝置,是運(yùn)用計(jì)算機(jī)技術(shù),圍繞應(yīng)用需求,對(duì)軟件硬件進(jìn)行相應(yīng)裁剪,使功能、成本、體積、功耗以及可靠性等都能適應(yīng)相應(yīng)要求的專用計(jì)算機(jī)系統(tǒng)。傳統(tǒng)的基于數(shù)字信號(hào)處理(Digital Signal Processing,DSP)的嵌入式系統(tǒng),主要是由DSP和微控制單元(Micro Control Unit,MCU)共同組成的[1]。MCU是一種主處理器,能夠發(fā)揮控制功能,進(jìn)而完成系統(tǒng)內(nèi)外的網(wǎng)絡(luò)傳輸,DSP則是一種協(xié)處理器,主要用以計(jì)算各類密集數(shù)值。隨著工控技術(shù)的發(fā)展,這些功能都能夠整合到一個(gè)單片處理器中,DSP芯片執(zhí)行數(shù)據(jù)處理功能,再運(yùn)用網(wǎng)絡(luò)完成傳輸,成為一種更有適應(yīng)性的應(yīng)用工藝。將DSP嵌入式系統(tǒng)與以太網(wǎng)技術(shù)結(jié)合后,就能夠?qū)?shù)字化和網(wǎng)絡(luò)化相結(jié)合,從而提升DSP系統(tǒng)的應(yīng)用價(jià)值。
1 嵌入式系統(tǒng)與以太網(wǎng)的連接方案
1.1 集中式
集中式嵌入是由一臺(tái)PC機(jī)前段接入以太網(wǎng),后端通過(guò)USB,CAN,RS-485,RS-232等接口連接嵌入式設(shè)備。網(wǎng)關(guān)上以TCP/IP協(xié)議棧為主,也可接入RS-485和RS-232等總線協(xié)議,從而使以太網(wǎng)能夠連接各個(gè)不同的子網(wǎng)和嵌入式設(shè)備,并進(jìn)行通信。這一方案對(duì)于存儲(chǔ)器大小與設(shè)備運(yùn)行速度要求不高,接口程序軟件設(shè)計(jì)數(shù)量也較少,軟件設(shè)計(jì)工作量低。但該方案需要通過(guò)計(jì)算機(jī)轉(zhuǎn)化網(wǎng)關(guān)協(xié)議,在嵌入式設(shè)備的分布范圍較大時(shí),網(wǎng)絡(luò)通信而終會(huì)面臨較大的難度,同時(shí)計(jì)算機(jī)上需要有專用的協(xié)議轉(zhuǎn)換程序,而此程序軟件購(gòu)自專門(mén)的開(kāi)發(fā)商手中,成本較高。
1.2 分布式
分布式通信是在嵌入式系統(tǒng)中接入以太網(wǎng)控制模塊,使嵌入式設(shè)備能夠和以太網(wǎng)直接連接。要實(shí)現(xiàn)這種通信模式,可以通過(guò)3種方式:(1)實(shí)時(shí)操作系統(tǒng)(Real Time Operating System,RTOS)與TCP/IP協(xié)議棧結(jié)合,在嵌入式微處理器中運(yùn)行以太網(wǎng)控制模塊,這種方式運(yùn)行靈活、功能強(qiáng)大,但要求有極高的嵌入式微處理器性能,其中RTOS能夠滿足這一要求,但由于價(jià)格較高,因此導(dǎo)致連接成本高。(2)MCU與裁減TCP/IP協(xié)議棧相連接。在嵌入式微處理器中直接連接TCP/IP協(xié)議棧,通過(guò)輪詢和終端的方式控制外部設(shè)備,不需要再使用RTOS系統(tǒng),因此能夠降低成本。(3)MCU與TCP/IP硬件芯片相結(jié)合的方式。將搭載了TCP/IP協(xié)議棧的以太網(wǎng)控制芯片作為MCU的外圍設(shè)備,進(jìn)行連接,對(duì)MCU性能要求較低,但較難完成MCU和TCP/IP控制芯片之間的網(wǎng)絡(luò)通信。
1.3 RTOS和嵌入式系統(tǒng)微控制器相結(jié)合
使用RTOS-32作為高檔單片機(jī)系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)軟件,處理嵌入式系統(tǒng)執(zhí)行TCP/IP協(xié)議的問(wèn)題,WindowsCE與Linux是兩種使用較多的系統(tǒng)。這一方案需要以高檔單片機(jī)作為基礎(chǔ),成本較高,開(kāi)發(fā)周期也較長(zhǎng),且RTOS開(kāi)發(fā)軟件和TCP/IP協(xié)議之間的針對(duì)性較差,會(huì)造成代碼冗余。
1.4 虛擬軟件包與嵌入式微控制器相結(jié)合
這種方案是將MCU和TCP/IP協(xié)議棧固定到嵌入式系統(tǒng)中,系統(tǒng)就能夠直接連接以太網(wǎng),不需要復(fù)雜的硬件電路,但需要較大容量的存儲(chǔ)器,當(dāng)TCP/IP協(xié)議棧虛擬軟件包為固化模式時(shí),還需要MCU有足夠快的運(yùn)行速度。這一方案也是單片機(jī)系統(tǒng)與以太網(wǎng)直接連接的一種模式,計(jì)算機(jī)接入互聯(lián)網(wǎng)后就直接控制單片機(jī)系統(tǒng),單片機(jī)系統(tǒng)能夠直接利用互聯(lián)網(wǎng)直接發(fā)送數(shù)據(jù)信息到計(jì)算機(jī)上,從而實(shí)現(xiàn)遠(yuǎn)程交互。
1.5 EMIT協(xié)議、MCU與emgateway協(xié)議相結(jié)合
通過(guò)以太網(wǎng)的EMIT協(xié)議、MCU的emnet協(xié)議相結(jié)合,最后由emateway協(xié)議連接以太網(wǎng),使嵌入式系統(tǒng)連接到以太網(wǎng)中。emgateway軟件應(yīng)用廣泛,并且能夠支持TCP/IP協(xié)議,各種嵌入式設(shè)備中所搭載的程序都能夠獨(dú)立提供網(wǎng)絡(luò)通信服務(wù),并準(zhǔn)確識(shí)別emgateway中的通信指令,使嵌入式系統(tǒng)能夠準(zhǔn)確高度設(shè)備的各種變量,并控制部分操作。
2 基于DSP嵌入式系統(tǒng)的網(wǎng)絡(luò)通信技術(shù)的硬件設(shè)計(jì)
嵌入式系統(tǒng)在接入以太網(wǎng)時(shí),首要問(wèn)題在于接口問(wèn)題,選擇合適的網(wǎng)絡(luò)適配器是首要任務(wù)。以DSP芯片作為嵌入式系統(tǒng),通過(guò)RTL8019以太網(wǎng)控制器接入到以太網(wǎng)中[2]。
2.1 硬件設(shè)計(jì)總體方案
DSP芯片選擇TMS320F2812,該芯片中包含了四大模塊,分別為:主CPU模塊、以太網(wǎng)通信接口模塊、信號(hào)采集模塊以及人機(jī)接口模塊。主CPU負(fù)責(zé)運(yùn)算與處理AD轉(zhuǎn)換后的外部設(shè)備信號(hào);信號(hào)采集模塊則負(fù)責(zé)過(guò)濾并處理外部設(shè)備的數(shù)據(jù)信號(hào),并利用AD轉(zhuǎn)換信號(hào),再傳送到CPU模塊;以太網(wǎng)通信接口模塊則負(fù)責(zé)傳送CPU處理過(guò)的數(shù)據(jù)信號(hào)至上機(jī)位,再將上位機(jī)傳送過(guò)來(lái)的反饋信號(hào)或者人機(jī)接口指令傳輸?shù)紺PU模塊;人機(jī)接口模塊則負(fù)責(zé)實(shí)時(shí)顯示、查詢或修正數(shù)據(jù)。系統(tǒng)中包含了RJ45接口、RS-232接口、音頻輸入接口以及聯(lián)合測(cè)試工作組(Joint Test Action Group,JTAG)接口,有豐富的基礎(chǔ)功能。endprint
音頻信號(hào)采集電路由前置放大濾波、媒體接口連接器(Media Interface Connector,MIC)音頻輸入及抗混疊被3部分電路組成,DSP芯片中的AD收集通道負(fù)責(zé)輸入音頻信號(hào),并通過(guò)DSP信號(hào)采集模塊分析頻譜并儲(chǔ)存分析數(shù)據(jù)。
以太網(wǎng)適配器選擇93C46,以太網(wǎng)通信接口模塊包含了RJ45接口、RTL8019AS控制器芯片、以太網(wǎng)適配器和信道隔離濾波器4個(gè)部分。適配器設(shè)置8位數(shù)據(jù)總線,能夠儲(chǔ)存嵌入式系統(tǒng)中的各類IP地址、物理地址以及子網(wǎng)掩碼等信息。
2.2 以太網(wǎng)芯片
以太網(wǎng)芯片使用RTL8019AS。該芯片有24位地址接口,還包含了16位數(shù)據(jù)接口,能夠執(zhí)行以太網(wǎng)媒介訪問(wèn)層(Media Access Control,MAC)與物理層(Physical Layer,PHY)的全部功能,能夠滿足Ethernet II、10Bases、IEEE 802.3等多個(gè)標(biāo)準(zhǔn),能夠在物理幀上實(shí)現(xiàn)檢驗(yàn)和、幀頭以及幀起始定界符的功能,可以支持8位、16位兩種數(shù)據(jù)總線,最高速度可達(dá)10 MBPs,其睡眠模式能夠顯著降低功耗優(yōu)勢(shì)。控制器內(nèi)部加載了16 K靜態(tài)隨機(jī)存取存儲(chǔ)器(Static Random Access Memory,SRAM),能夠?qū)崿F(xiàn)緩沖收發(fā),降低了對(duì)處理器的速率要求,可以連接到同軸電纜與雙絞線兩種電纜上,自動(dòng)識(shí)別連接介質(zhì)。
3 基于DSP嵌入式系統(tǒng)的網(wǎng)絡(luò)通信技術(shù)的軟件設(shè)計(jì)
3.1 初始化數(shù)據(jù)
接收傳送數(shù)據(jù)前,要先檢查RTL8019AS以太網(wǎng)芯片,并完成數(shù)據(jù)的初始化,使芯片能夠維持相應(yīng)的工作模式。初始化工作主要是包含網(wǎng)卡物理地址的設(shè)置、緩沖區(qū)數(shù)據(jù)起始與結(jié)束頁(yè)地址的接收、中斷屏蔽寄存器、配置數(shù)據(jù)寄存器、接收與發(fā)送配置寄存器以及頁(yè)邊界指針寄存器BNRY等。
3.2 中斷服務(wù)程序設(shè)計(jì)
中斷服務(wù)程序關(guān)系到數(shù)據(jù)接收程序的運(yùn)行,兩者互相配合才能有效運(yùn)行。以太網(wǎng)控制芯片接收到網(wǎng)絡(luò)數(shù)據(jù)首幀數(shù)據(jù)包后,就會(huì)自動(dòng)進(jìn)行循環(huán)冗余碼校驗(yàn)(Cyclic Redundancy Check,CRC),加快了中端程序處理速率。網(wǎng)卡成功接收到一幀完整的數(shù)據(jù)后,接收計(jì)數(shù)器加1,并向DSP系統(tǒng)發(fā)出中斷請(qǐng)求[3]。DSP在收到請(qǐng)求后,就會(huì)進(jìn)入中斷服務(wù)程序,并接收網(wǎng)卡傳送過(guò)來(lái)的數(shù)據(jù)包。DSP出現(xiàn)錯(cuò)誤時(shí),就會(huì)丟失已經(jīng)接收到的數(shù)據(jù)包,并且使中斷請(qǐng)求無(wú)法發(fā)送至DSP。
3.3 數(shù)據(jù)接收程序設(shè)計(jì)
主程序檢查網(wǎng)卡時(shí),當(dāng)接收計(jì)數(shù)器顯示非0時(shí),就會(huì)將數(shù)據(jù)接收程序調(diào)用至網(wǎng)卡內(nèi)部緩存中,并開(kāi)始讀取數(shù)據(jù),數(shù)據(jù)傳送到主機(jī)后,主機(jī)就會(huì)開(kāi)始處理數(shù)據(jù)。幀的接收包含了兩個(gè)環(huán)節(jié),首先需要運(yùn)用本地直接存儲(chǔ)器存?。―irect Memory Access,DMA),將幀放到接收緩存中,并由DMA從內(nèi)在中讀取緩存數(shù)據(jù),接收網(wǎng)絡(luò)信道中的數(shù)據(jù)幀,同時(shí)由緩存接收網(wǎng)卡緩存,通過(guò)數(shù)據(jù)接收程序讀取緩存幀,最終存儲(chǔ)到內(nèi)存中。
3.4 數(shù)據(jù)發(fā)送程序設(shè)計(jì)
網(wǎng)卡需要在發(fā)送狀態(tài)處于空閑時(shí)進(jìn)行,發(fā)送程序中的主循環(huán)包含了多個(gè)循環(huán),每個(gè)循環(huán)可以多發(fā)送一個(gè)數(shù)據(jù)包,從而完成數(shù)據(jù)的發(fā)送,進(jìn)而提高了程序發(fā)送效率。在傳送數(shù)據(jù)包時(shí),首先要進(jìn)行封裝,之后由DMA將數(shù)據(jù)包發(fā)送至網(wǎng)卡,并儲(chǔ)存在緩沖區(qū)中,再由網(wǎng)卡中的DMA將數(shù)據(jù)發(fā)送至先入先出(First In First Out,F(xiàn)IFO)存儲(chǔ)器,再將數(shù)據(jù)發(fā)送到以太網(wǎng)中。
4 結(jié)語(yǔ)
在嵌入式系統(tǒng)中接入以太網(wǎng)有多個(gè)不同的方案,在選擇方案時(shí),要結(jié)合成本、傳輸速率要求、數(shù)據(jù)包大小等因素選擇,以TMS320F2812DSP芯片為基礎(chǔ),選擇93C46以太網(wǎng)適配器,將RTL8019AS作為以太網(wǎng)控制器芯片,在主程序的控制下,通過(guò)初始化、中斷服務(wù)程序、數(shù)據(jù)接收與發(fā)送程序的運(yùn)行,就能夠完成數(shù)據(jù)網(wǎng)絡(luò)通信工作。
[參考文獻(xiàn)]
[1]鄭珩.基于以太網(wǎng)接入嵌入式系統(tǒng)的DSP設(shè)計(jì)[J].信息安全與技術(shù),2015(8):45-47.
[2]顧六平.嵌入式系統(tǒng)以太網(wǎng)接入中DSP的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)試,2013(5s):64-65.
[3]劉一萱.基于DSP嵌入式系統(tǒng)網(wǎng)絡(luò)通信技術(shù)應(yīng)用[J].科學(xué)與財(cái)富,2017(15):133.
Abstract:In the embedded system to access Ethernet includes five kinds of solutions, namely centralized solutions of PC + Ethernet + embedded devices, distributed solutions of embedded systems + Ethernet control module, microcontroller solutions of RTOS + embedded system, microcontroller solutions of Virtual Packages + Embedded, EMIT protocols and MCU + emgateway protocols. This article chooses TMS320F2812 DSP chip, 93C46 Ethernet adapter and RTL8019AS Ethernet controller chip, after connecting the DSP chip with Ethernet, the TCP / IP protocol stack is used to complete the hardware system connection. After this, the article carries on the software program design, carries on the initialization to the DSP chip and the Ethernet control chip driver data, designs the interrupt service program to cooperate with the data receiving program operation, through the data receiving procedure reads the network card internal cache frame, and eventually the data is stored in memory, and then the data sending program sends the data packet to the Ethernet to complete the network communication between the DSP and the remote PC.
Key words:DSP embedded system; DSP chip; Ethernet adapter; Ethernet controller chipendprint