基于ARM嵌入式系統(tǒng)的PC/104總線設計
當前已經進入嵌入式系統(tǒng)全面應用時代,基于ARM處理器和嵌入式Linux的嵌入式系統(tǒng)以其設計靈活、軟硬件可裁剪、性能優(yōu)越、成本低等特點和優(yōu)勢,倍受設計者和使用者青睞。其在低功耗、低成本應用領域確立了其市場領導地位;同時隨著x86架構的不斷成熟和x86處理器的應用范圍越來越廣,人們逐步開始認識到其本身架構的限制,在工業(yè)控制領域嵌入式ARM處理器將有望取代傳統(tǒng)的X86處理器。
本文引用地址:http://m.butianyuan.cn/article/79033.htmPCI04總線是一種近年來在國際上廣泛流行的專門為嵌入式系統(tǒng)而定義的工業(yè)控制總線,被IEEE協(xié)會定義為IEEE-P996,該系列產品已廣泛應用于通信設備、車輛導航、工程控制等各種領域。由于PC或PC/AT的主板和擴展卡的尺寸及功耗標準都太大,。ISA總線不能滿足嵌入式系統(tǒng)的發(fā)展的需要。PC/104作為從。ISA總線轉變而來的接口總線,主要是為了適應嵌入式系統(tǒng)發(fā)展的需要,但是這種早期的總線結構是建立在Intel的x86架構之上的,在ARM體系結構下,還沒有一個統(tǒng)一的標準可以提供對PC/104總線的支持,因為ARM在體系架構、總線時序、電氣性能等方面和x86都有很大的區(qū)別。本文將提出一種在ARM處理器上支持PC/104總線的解決方案。
l 系統(tǒng)總體設計
系統(tǒng)的工作原理:PC/104總線上的1/O和Memory各16 MB空間用nGCS2和nGCS3選通,分別映射到的S3C24lO存儲空間Bank2和Bank3的ROM/SRAM上。由于S3C24:10和CPLD在電平模式、制造工藝上都和PC/104總線標準有差異,故選用器件74LVHl62245做3.3~5 V電平轉換器Buffer的方式來調整電氣特性,進行TTL電平和LVTTL電平的轉換,并增強驅動能力。PC/104總線上的8個中斷請求信號IRQ[3:11]經bairer直接連接到S3C:2410的EINT[O:7];將S3C2410地址線SAddr[1:23]通過Buffer直接連接到Pc/104總線的Addr[1:19]和LAddr[17:23],.Addr0由控制器給出,當總線為8位數據傳輸時有效。由于復雜可編程器件CPLD的集成度高,與專用集成電路相比,具有設計靈活、開發(fā)周期短、設計制造成本低、大大節(jié)省了硬件資源優(yōu)點,可選用他來做PC/104總線的控制器,主要是完成S3C2410讀寫時序向PC/104總線讀寫時序的轉換,對輸入控制信號譯碼,提供PC/104總線和S3C2410處理器的控制信號,同時產生PC/104所需要的時鐘信號。S3C2410數據總線D[O:15]經CPLD輸出到Buffer(Buffer上的數據傳輸方向由控制信號Data dir控制),連接到PC/104的數據總線上。因此總線控制設計的關鍵是保證控制器CPLD的時序的正確。其原理框圖如圖1所示。
2 PC/104總線控制器的實現
2.1 PC/104總線簡介
PC/104模塊具有獨特的堆疊式總線擴展方式、體積小、功耗低、可靠性高等特點,由J1/P1,64針單列雙排插針或插孔,和J2/P2,40針單列雙排插針或插孔組成,總共104根總線信號,PCI04因此得名;標準模塊的機械尺寸是3.6X3.8 in,即96X90 lnln。當總線工作在16位的數據模式下,兒/P1和J2/P2引腳的信號都應有效,在8位數據模式下,只有J1/P1引腳信號有效,J2/P2上的信號無效。104個引腳的組成:20根地址線;7根鎖存地址線;16根數據線;11個中斷請求;32根控制線;14跟地和電源線;2個key;1個8 MHz的BCLK和1個14 MHz的OSC;總線的工作電壓為5 V。PC/104總線的I/O讀寫時序如圖2所示。
2.2 ARM$3C2410處理器簡介
S3C2410是韓國三星電子公司的一款基入ARM920T內核的16/32位RISC嵌入式處理器,主要面向手持設備及高性價比、低功耗的應用,最高工作頻率為203 MI-Iz。ARM920T核由ARM920TDMI、存儲管理單元(MMU)和高速緩存3部分組成。其中MMU可以管理虛擬內存,高速緩存由獨立的16 kB地址和16 kB數據高速Cache組成,他支持嵌入式Linux,Windows ce等嵌入式操作系統(tǒng)。S3C2410將系統(tǒng)的存儲空間分成8組(Bank),每組的大小為128 M,共1 G。Bank0~Bank5的開始地址固定,用于ROM/SREM。Bank7的開始地址是Bank6的結束地址,靈活可變,其主要用于ROM/SRAM/SDRAM。S3C2410采用nGCS[7:0]8個通用的片選信號來選則這些組。讀寫時序圖如圖3所示。
2.3 PC/104總線控制器的設計
本設計采用。Xilinx公司XC95144XL的CPLD,共144個引腳,其中可編程的引腳數117個,滿足PC/104總線控制器上輸入輸出控制信號數目的要求;器件正常工作電壓3.3 V,I/O端口的負載電流可達24 mA,延遲時間tpD=5 ns,工作頻率f=178 MHz,可與S3C2410的AHB總線的時鐘頻率HCLK匹配。VHDL是電子設計的主流硬件描述語言,具有很強的電路描述和建模的能力,從而大大簡化了硬件設計的任務,提高了設計的效率和可靠性,并在語言的易讀性和層次化結構化設計方面,表現了強大的生命力和應用潛力。Max+PlusⅡ界面友好,使用便捷。因此選擇用VHDL語言編寫有限狀態(tài)機來實現PC/104總線控制器,通過Max+P1usⅡ開發(fā)工具進行邏輯波形驗證。
2.3.1 控制器內部狀態(tài)圖
在PC/104總線的設計中,設計的重點是總線控制器的實現,能否完成PC/104總線驅動,關鍵在于控制器能否正常運行。PC/104總線控制器的工作流程:控制器等待選通信號有效,如果nGCS有效則鎖存地址并保持ARM總線狀態(tài),然后進行讀寫操作判斷,最后把數據和相應得控制信號加在PC/104總線上,完成操作后釋放ARM總線。其狀態(tài)轉換圖如圖4所示。
2.3.2 I/o空間讀寫邏輯仿真波形
本設計的有限狀態(tài)機采用VHDL語言設計,主要完成PC/104總線控制器的狀態(tài)圖轉換,從邏輯仿真波形上看:ARM讀操作時,n0E信號有效(低電平),從總線上讀人數據,同時使總線控制信號有效;寫操作時,nWE信號有效(低電平),把數據直接寫到總線上,同時也使總線控制信號有效,圖5的仿真波形基本符合本設計的S3C24lO和PC/104總線讀寫時序要求。
3嵌入式Linux下的驅動程序開發(fā)
為了在Linux 2.6操作系統(tǒng)下實現本文所述的功能,必須為總線控制器提供一個驅動程序。在Linux中,所有的硬件設備都像常規(guī)文件一樣看待,他們可以使用和操作文件相同的,標準的系統(tǒng)調用進行打開、關閉和讀寫。用戶程序通過相應的系統(tǒng)調用來訪問硬件設備,設備驅動程序的作用正是為這些系統(tǒng)調用提供接口。為了能對PC/104總線上的地址空間進行隨機、連續(xù)訪問,把PC/104總線設計成塊設備。
設備驅動程序本質上說就是一組相關函數的集合。在驅動程序模塊化編程中,首先需要調用入口函數im-modLde()完成設備驅動程序的初始化工作:利用函數
最后驅動程序卸載時調用出口函數Clearnup rood-ule(),通過函數
4 結 語
本文重點描述對PC/104控制器的設計,從滿足系統(tǒng)的時序要求出發(fā),采用CPLD器件和VHDL語言完成對PC/104總線上信號的驅動,同時在嵌入式Linux環(huán)境下編寫驅動程序,提供了一套完整的基于ARM嵌入式系統(tǒng)上實現PC/104總線的方案,該方案將在實踐應用中進一步驗證和完善。本文成功地把工業(yè)控制計算機技術中的嵌入式PC/104總線結構在S3C2410處理器上實現,該系統(tǒng)具有體積小、功耗低,克服了傳統(tǒng)PC機的缺點;采用CPLD通過VHDL語言實現PC/104總線控制器,縮短開發(fā)的成本和周期,提高了開發(fā)的靈活性。
評論