2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第21卷V0121第21期No2l電子設(shè)計工程ElectronicDesignEngineering2013年11月NOV2013基于ARM—Linux和單片機(jī)的數(shù)據(jù)通信系統(tǒng)設(shè)計楊斌一,滿峰,姜秀杰,劉波(1中國科學(xué)院空間科學(xué)與應(yīng)用研究中,北京100190;2中國科學(xué)院研究生院北京100049)摘要:為升級現(xiàn)有單片機(jī)系統(tǒng)并保證系統(tǒng)的重用性和集成性,設(shè)計了單片機(jī)和嵌入Linux的ARM基于SPI總線的數(shù)據(jù)通信系統(tǒng)。通過在原有系統(tǒng)上增加AR

2、M,既可以提升系統(tǒng)的性能和功能,又相對地減少了升級系統(tǒng)的工作量,另外通信速率高。文章介紹了系統(tǒng)硬件設(shè)計、單片機(jī)裸機(jī)程序設(shè)計以及Linux下驅(qū)動和用于測試驅(qū)動的應(yīng)用程序設(shè)計。測試結(jié)果表明,系統(tǒng)穩(wěn)定、可靠,具有實際工程應(yīng)用價值。關(guān)鍵詞:LPC3250:嵌入式Linux:C8051F120;SPI中圖分類號:TN99文獻(xiàn)標(biāo)識碼:A文章編號:1674—6236(2013)21—0126—04Designofdatacommunicationsy

3、stembasedonARM—LinuxandMCUYANGBin,MANFeng,JIANGXiujie,LIUBo(1CenterforspaceScienceandAppliedResearch,ChineseAcademyofSciences,Bering100190,China;2GraduateUniversityofChineseAcademyofSciences,Bering100049,China)Abstract:A

4、imingatupgradingtheexistingMCUsystemandensuringreusabilityandintegration,thispaperdesignsadatacommunicationsystemofMCUandARMLinuxbasedonSPIbusAddingARMtotheoriginalsystemnotonlyimprovesperformanceandfunctionalityofthesys

5、tem,butalseducestheworkloadofupgradingthesystemrelativelyInaddition,thecommunicationrateisveryhighThepaperdiscussesthehardwaredesign,thesoftwaredesignunderMCU,thedriverandapplicationdesignunderARMLinuxThetestresultsshowt

6、hatthedesignisreliableandhaspracticalvalueKeywords:LPC3250;embeddedLinux;C8051F120;SPI在前些年很多嵌人式產(chǎn)品都是基于單片機(jī)而開發(fā)設(shè)計的。隨著嵌入式技術(shù)的發(fā)展,原來產(chǎn)品的功能開始變得不足和落后。例如,以前基于單片機(jī)的產(chǎn)品很多沒有以太網(wǎng)功能和文件管理功能,且擴(kuò)展性差。增加和更新產(chǎn)品功能成為保持原來產(chǎn)品競爭力的關(guān)鍵。此時,單片機(jī)的局限性便顯示出來。單片機(jī)雖然

7、開發(fā)簡單、價格低廉,但資源卻較少【1]。如果直接將單片機(jī)更換成高端的處理器,難度和工作量都將會很大。所以,在原來系統(tǒng)中增加功能強(qiáng)大的處理器例如ARM,是一個很好的解決方法。ARM的高性能、低功耗使其成為現(xiàn)代流行嵌入式系統(tǒng)的首選。而且現(xiàn)在的中高端ARM可以嵌入Linux操作系統(tǒng),這使開發(fā)軟件變得方便、安全和高效。單片機(jī)主要有RS232、I2C、SPI總線,現(xiàn)在已有的產(chǎn)品,ARM和單片機(jī)通信主要是通過串ISl,但通信速率較低。本文使用恩智普

8、公司的ARM9處理器LPC3250和CYGNAL公司的C8051F120單片機(jī),設(shè)計并實現(xiàn)了嵌入式Linux下ARM9和單片機(jī)基于SPIm總線的數(shù)據(jù)通信接口。1系統(tǒng)硬件設(shè)計系統(tǒng)的硬件連接圖如圖1所示。收稿日期:2013—04—09稿件編號:201304099基金項目:國家高技術(shù)研究發(fā)展計劃資助(2011AA7033045)電源模塊圖1硬件連接圖Fig1Hardwareconnectiondiagram系統(tǒng)中LPC3250與C8051F1

9、21通過SSP總線相連接。SSP總線兼容SPI、4線SSI或Mierowire總線。在系統(tǒng)中SSP被配置為SPI的幀格式與單片機(jī)通信。C8051F120的P02、P03、Po4、P05經(jīng)過數(shù)字交叉開關(guān)的選擇,依次對應(yīng)SPI/SSP接口的SCK、MISO、MOSI、NSS。其中,SCK是時鐘信號:MOSI是主設(shè)備數(shù)據(jù)輸出和從設(shè)備數(shù)據(jù)輸入信號:MISO是從設(shè)備數(shù)據(jù)輸出和主設(shè)備數(shù)據(jù)輸入信號;NSS是片選信號。ARM與單片機(jī)除了通過SPI總線相

10、連接外,還將ARM的GPO_20端口與單片機(jī)的外部中斷0端口相連接。單片機(jī)的P16端口經(jīng)過數(shù)字交叉開關(guān)的選擇,被設(shè)置為外部中斷O端口。此連接用于ARM每秒給單片機(jī)提供一個外部中斷信號單片機(jī)根據(jù)此中斷更新發(fā)送數(shù)據(jù)。作者簡介:楊斌(1988一),男,河南信陽人,碩士研究生。研究方向:航天器綜合電子技術(shù)。126sj~至J《電子設(shè)計工程2013年第21期structfile_operationsc8051fl2l_fops=owner=THIS

11、—MODULE,open=c805lfl20_openwrite=c8051f120_write,read:c805lf120_readrelease=c805lf120_release,l;結(jié)構(gòu)的第一個字段幾乎在所有情況下都被初始化為THIS_MODULE,此處可以不管,但必不可少。open提供給驅(qū)動程序以初始化的能力嘲。c8051f120_open要完成的任務(wù)包括:復(fù)用管腳選擇;控制器使能、主/從機(jī)選擇;幀長度設(shè)置、時鐘和相位極性設(shè)

12、置、通信速率設(shè)置、禁止中斷。LPC3250的SPI管腳與SSP管腳復(fù)用,如果使用SPI控制器控制管腳,則只能半雙工通信;如果使用SSP控制器控制SPI總線通信,可以實現(xiàn)全雙工。由于單片機(jī)端的SPI是全雙工,所以系統(tǒng)中將SPUSSP復(fù)用管腳配置為SSP管腳。LPC325O的SSP控制SPI總線通信每幀長度可以設(shè)置為4到16位,考慮到C8051F120作為從SPI設(shè)備時。一次只能傳輸一個字節(jié),所以把LPC3250的數(shù)據(jù)長度設(shè)置為8位。通信速

13、率設(shè)置為500K。時鐘和相位極性和單片機(jī)端的設(shè)置一致即可。c8051f120_open部分代碼如下:,木ssel0/gpio_05復(fù)用管腳設(shè)置為gpio_05,iowfite32(15,p2一mux_clr);將gpio_05配置為輸出/iowrite32(130,p2一dir_set);/SPUSSP復(fù)用管腳設(shè)置為ssp/iowrite32((39)I(112),p_mux_clrOx04);使能SSP0時鐘/iowrite32(0x

14、01,ssp_ctr1);SSP控制器使能。并作總線主機(jī),iowrite32((11),sspOcr0Ox04);iowrite32((7O)l幀數(shù)據(jù)長度8bit/(O4)I,宰配置為SPI幀格式/(16)l時鐘極性CPOL為高/(07)I第一個時鐘捕獲,(28)SSP通信位速率/,ssp0crO);由于SPI的全雙工特性,同時進(jìn)行讀寫操作,所以,e8051f120_write只通過copy_from_user函數(shù)接收應(yīng)用程序要發(fā)送給單

15、片機(jī)的數(shù)據(jù),并將其保存在內(nèi)核空間的數(shù)據(jù)結(jié)構(gòu)中,等待c8051f120_read函數(shù)讀單片機(jī)的同時把此數(shù)據(jù)發(fā)送給單片機(jī)。e8051f120_read函數(shù)是LPC3250與C8051F120通信的重點,它讀取C8051F120中的數(shù)據(jù),并通過copy_to_user函數(shù)傳給應(yīng)用程序。c8051f120_read函數(shù)的程序流程如圖4所示。—128應(yīng)用程序read系統(tǒng)調(diào)用片選信號拉低收緩沖I否為空發(fā)送數(shù)據(jù)啟動一次數(shù)據(jù)傳輸鑒蘭否將讀到的數(shù)據(jù)轉(zhuǎn)換成

16、char型并存放在一維數(shù)組中已讀取數(shù)據(jù)個數(shù)1將整個數(shù)據(jù)結(jié)構(gòu)從內(nèi)核空間傳到用戶空間清零數(shù)據(jù)結(jié)構(gòu)返回傳到用戶空間的字節(jié)數(shù)圖4c805lfl20_read函數(shù)流程圖Fig4Flowchartofc8051f120_readfunction當(dāng)應(yīng)用程序通過read系統(tǒng)調(diào)用進(jìn)入c8051f120_read后,先拉低片選信號。然后檢查接收FIFO是否為空,因為LPC3250每秒讀取一組數(shù)據(jù),為了將數(shù)據(jù)和時間對應(yīng)起來,每次讀取前,需要確保接收FIFO為

17、空。然后,讀?、魝€數(shù)據(jù)后。每次讀取數(shù)據(jù)的方法:啟動一次數(shù)據(jù)傳輸,并通過查詢SSP0狀態(tài)寄存器SSPoSR的第4位是否為0來確定數(shù)據(jù)傳輸是否結(jié)束。傳輸結(jié)束后,當(dāng)接收FIFO中有數(shù)后,讀取數(shù)據(jù),并轉(zhuǎn)換成char類型后存放在char型的一維數(shù)組中。如此,讀取Ⅳ個數(shù)據(jù)后將一維數(shù)組中的Ⅳ個字節(jié)通過copytouser函數(shù)傳遞的應(yīng)用程序所在的用戶空間,并返回傳遞字節(jié)數(shù)。c8051f120_release對應(yīng)著系統(tǒng)調(diào)用中的close函數(shù)。它需要完成這

18、個驅(qū)動所涉及的配置寄存器的復(fù)位。在c805lf120_release中,只需做與c8051f120_open相反的任務(wù),將SSP控制器相關(guān)的寄存器復(fù)位,然后給出文件關(guān)閉的打印提示。32單片機(jī)中斷信號產(chǎn)生驅(qū)動設(shè)計此驅(qū)動程序與SPI通信的驅(qū)動程序在結(jié)構(gòu)上是一樣的,都是要實現(xiàn)structfile_operations結(jié)構(gòu)中函數(shù)。此驅(qū)動模塊只實現(xiàn)了open、release和write函數(shù)。在open中,設(shè)置GPO一20輸出高電平。在write中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論