

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第21卷V0121第21期No2l電子設計工程ElectronicDesignEngineering2013年11月NOV2013基于ARM—Linux和單片機的數據通信系統(tǒng)設計楊斌一,滿峰,姜秀杰,劉波(1中國科學院空間科學與應用研究中,北京100190;2中國科學院研究生院北京100049)摘要:為升級現有單片機系統(tǒng)并保證系統(tǒng)的重用性和集成性,設計了單片機和嵌入Linux的ARM基于SPI總線的數據通信系統(tǒng)。通過在原有系統(tǒng)上增加AR
2、M,既可以提升系統(tǒng)的性能和功能,又相對地減少了升級系統(tǒng)的工作量,另外通信速率高。文章介紹了系統(tǒng)硬件設計、單片機裸機程序設計以及Linux下驅動和用于測試驅動的應用程序設計。測試結果表明,系統(tǒng)穩(wěn)定、可靠,具有實際工程應用價值。關鍵詞:LPC3250:嵌入式Linux:C8051F120;SPI中圖分類號:TN99文獻標識碼: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在前些年很多嵌人式產品都是基于單片機而開發(fā)設計的。隨著嵌入式技術的發(fā)展,原來產品的功能開始變得不足和落后。例如,以前基于單片機的產品很多沒有以太網功能和文件管理功能,且擴展性差。增加和更新產品功能成為保持原來產品競爭力的關鍵。此時,單片機的局限性便顯示出來。單片機雖然
7、開發(fā)簡單、價格低廉,但資源卻較少【1]。如果直接將單片機更換成高端的處理器,難度和工作量都將會很大。所以,在原來系統(tǒng)中增加功能強大的處理器例如ARM,是一個很好的解決方法。ARM的高性能、低功耗使其成為現代流行嵌入式系統(tǒng)的首選。而且現在的中高端ARM可以嵌入Linux操作系統(tǒng),這使開發(fā)軟件變得方便、安全和高效。單片機主要有RS232、I2C、SPI總線,現在已有的產品,ARM和單片機通信主要是通過串ISl,但通信速率較低。本文使用恩智普
8、公司的ARM9處理器LPC3250和CYGNAL公司的C8051F120單片機,設計并實現了嵌入式Linux下ARM9和單片機基于SPIm總線的數據通信接口。1系統(tǒng)硬件設計系統(tǒng)的硬件連接圖如圖1所示。收稿日期:2013—04—09稿件編號:201304099基金項目:國家高技術研究發(fā)展計劃資助(2011AA7033045)電源模塊圖1硬件連接圖Fig1Hardwareconnectiondiagram系統(tǒng)中LPC3250與C8051F1
9、21通過SSP總線相連接。SSP總線兼容SPI、4線SSI或Mierowire總線。在系統(tǒng)中SSP被配置為SPI的幀格式與單片機通信。C8051F120的P02、P03、Po4、P05經過數字交叉開關的選擇,依次對應SPI/SSP接口的SCK、MISO、MOSI、NSS。其中,SCK是時鐘信號:MOSI是主設備數據輸出和從設備數據輸入信號:MISO是從設備數據輸出和主設備數據輸入信號;NSS是片選信號。ARM與單片機除了通過SPI總線相
10、連接外,還將ARM的GPO_20端口與單片機的外部中斷0端口相連接。單片機的P16端口經過數字交叉開關的選擇,被設置為外部中斷O端口。此連接用于ARM每秒給單片機提供一個外部中斷信號單片機根據此中斷更新發(fā)送數據。作者簡介:楊斌(1988一),男,河南信陽人,碩士研究生。研究方向:航天器綜合電子技術。126sj~至J《電子設計工程2013年第21期structfile_operationsc8051fl2l_fops=owner=THIS
11、—MODULE,open=c805lfl20_openwrite=c8051f120_write,read:c805lf120_readrelease=c805lf120_release,l;結構的第一個字段幾乎在所有情況下都被初始化為THIS_MODULE,此處可以不管,但必不可少。open提供給驅動程序以初始化的能力嘲。c8051f120_open要完成的任務包括:復用管腳選擇;控制器使能、主/從機選擇;幀長度設置、時鐘和相位極性設
12、置、通信速率設置、禁止中斷。LPC3250的SPI管腳與SSP管腳復用,如果使用SPI控制器控制管腳,則只能半雙工通信;如果使用SSP控制器控制SPI總線通信,可以實現全雙工。由于單片機端的SPI是全雙工,所以系統(tǒng)中將SPUSSP復用管腳配置為SSP管腳。LPC325O的SSP控制SPI總線通信每幀長度可以設置為4到16位,考慮到C8051F120作為從SPI設備時。一次只能傳輸一個字節(jié),所以把LPC3250的數據長度設置為8位。通信速
13、率設置為500K。時鐘和相位極性和單片機端的設置一致即可。c8051f120_open部分代碼如下:,木ssel0/gpio_05復用管腳設置為gpio_05,iowfite32(15,p2一mux_clr);將gpio_05配置為輸出/iowrite32(130,p2一dir_set);/SPUSSP復用管腳設置為ssp/iowrite32((39)I(112),p_mux_clrOx04);使能SSP0時鐘/iowrite32(0x
14、01,ssp_ctr1);SSP控制器使能。并作總線主機,iowrite32((11),sspOcr0Ox04);iowrite32((7O)l幀數據長度8bit/(O4)I,宰配置為SPI幀格式/(16)l時鐘極性CPOL為高/(07)I第一個時鐘捕獲,(28)SSP通信位速率/,ssp0crO);由于SPI的全雙工特性,同時進行讀寫操作,所以,e8051f120_write只通過copy_from_user函數接收應用程序要發(fā)送給單
15、片機的數據,并將其保存在內核空間的數據結構中,等待c8051f120_read函數讀單片機的同時把此數據發(fā)送給單片機。e8051f120_read函數是LPC3250與C8051F120通信的重點,它讀取C8051F120中的數據,并通過copy_to_user函數傳給應用程序。c8051f120_read函數的程序流程如圖4所示?!?28應用程序read系統(tǒng)調用片選信號拉低收緩沖I否為空發(fā)送數據啟動一次數據傳輸鑒蘭否將讀到的數據轉換成
16、char型并存放在一維數組中已讀取數據個數1將整個數據結構從內核空間傳到用戶空間清零數據結構返回傳到用戶空間的字節(jié)數圖4c805lfl20_read函數流程圖Fig4Flowchartofc8051f120_readfunction當應用程序通過read系統(tǒng)調用進入c8051f120_read后,先拉低片選信號。然后檢查接收FIFO是否為空,因為LPC3250每秒讀取一組數據,為了將數據和時間對應起來,每次讀取前,需要確保接收FIFO為
17、空。然后,讀?、魝€數據后。每次讀取數據的方法:啟動一次數據傳輸,并通過查詢SSP0狀態(tài)寄存器SSPoSR的第4位是否為0來確定數據傳輸是否結束。傳輸結束后,當接收FIFO中有數后,讀取數據,并轉換成char類型后存放在char型的一維數組中。如此,讀?、魝€數據后將一維數組中的Ⅳ個字節(jié)通過copytouser函數傳遞的應用程序所在的用戶空間,并返回傳遞字節(jié)數。c8051f120_release對應著系統(tǒng)調用中的close函數。它需要完成這
18、個驅動所涉及的配置寄存器的復位。在c805lf120_release中,只需做與c8051f120_open相反的任務,將SSP控制器相關的寄存器復位,然后給出文件關閉的打印提示。32單片機中斷信號產生驅動設計此驅動程序與SPI通信的驅動程序在結構上是一樣的,都是要實現structfile_operations結構中函數。此驅動模塊只實現了open、release和write函數。在open中,設置GPO一20輸出高電平。在write中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于DeviceNet的數據通信系統(tǒng)設計.pdf
- 基于ARM Linux的數據通信和處理系統(tǒng)的設計與實現.pdf
- 單片機串行數據通信
- 基于FPGA的電子噴繪機數據通信系統(tǒng)設計.pdf
- 單片機系統(tǒng)數據通信技術從入門到精通
- 基于ARM的藍牙數據通信系統(tǒng).pdf
- 高速公路數據通信系統(tǒng)設計.pdf
- 基于Linux系統(tǒng)的IDA實時數據通信研究.pdf
- 基于avr單片機與上位機的通信系統(tǒng)設計
- 設計一個完整的數據通信系統(tǒng)--數據通信課程設計
- 無線數據通信系統(tǒng)的設計
- 單片機雙機通信系統(tǒng)設計【文獻綜述】
- 基于光纖無線電的OFDM寬帶數據通信系統(tǒng)設計.pdf
- 基于ARM和μClinux嵌入式系統(tǒng)的數據通信與處理.pdf
- 畢業(yè)論文--單片機通信系統(tǒng)設計
- 單片機雙機通信系統(tǒng)設計【開題報告】
- 余度飛控計算機數據通信系統(tǒng)設計.pdf
- 基于avr單片機的485通信系統(tǒng)設計
- 基于WiMAX和Wi-Fi混合組網的移動設備警用數據通信系統(tǒng)設計.pdf
- 基于單片機的USB接口電路及其在數據通信中的應用.pdf
評論
0/150
提交評論