基于ARM微處理器及嵌入試Linux的串口網(wǎng)橋軟硬件設(shè)計
為了解決這個問題,可以在共享中斷源后面加一個用CPLD實現(xiàn)的邏輯電路。該邏輯電路由兩部分組成,第一部分是一個可尋址的寄存器INTEN,作為共享中斷的允許位。第二部分是一個狀態(tài)機(jī)邏輯電路,該電路共有三個狀態(tài):S 0是等待狀態(tài),該狀態(tài)下INTEN=I,只要任何一個串口產(chǎn)生中斷請求,CPU將馬上響應(yīng)該中斷;Sl是中斷服務(wù)狀態(tài),中斷服務(wù)程序一開始執(zhí)行,馬上將INTEN設(shè)置為0,以屏蔽其他中斷請求,退出中斷服務(wù)程序時,再將INTEN設(shè)置為1,中斷服務(wù)程序執(zhí)行期間產(chǎn)生的串口中斷請求由INTREQ鎖存;S2為延時狀態(tài),延時50us,以確保中斷服務(wù)程序完全退出。
狀態(tài)機(jī)邏輯電路狀態(tài)圖如圖4所示:
4.系統(tǒng)軟件平臺
4.5 uC1inux操作系統(tǒng)簡介
Linux是一種很受歡迎的類UNIX操作系統(tǒng),它免費并開放源代碼,在個人計算機(jī)、服務(wù)器領(lǐng)域應(yīng)用廣泛。更重要的是,Linux采取模塊化設(shè)計,實際應(yīng)用中可以實現(xiàn)定制,因此Linux也適用于嵌入式領(lǐng)域。uClinux正是Linux的一個嵌入式版本,其內(nèi)核的二進(jìn)制映像文件可以做到小于512K。
uClinux針對無MMU(Memory Management Unit,內(nèi)存管理單元)的處理器設(shè)計,支持多任務(wù),具有完備的TCP/IP協(xié)議棧并支持多種網(wǎng)絡(luò)協(xié)議。uClinux還支持多種文件系統(tǒng),如ROMFS,NFS,F(xiàn)ATl6/32。實際上,uClinux已經(jīng)成功應(yīng)用于路由器、網(wǎng)絡(luò)攝像機(jī)、機(jī)頂盒、PDA等諸多領(lǐng)域。
另外,uClinux可移植性很強(qiáng),用戶通過重新配置、編譯內(nèi)核,可以很方便地將其移植到ARM,Dragon Ball、ColdFire、Power PC等多種處理器計算平臺。當(dāng)前uClinux主要提供2.0和2.4兩個內(nèi)核版本。
4.2軟件開發(fā)調(diào)試方法
嵌入式Linux軟件開發(fā)可以采用一種特殊的模式:主機(jī)--目標(biāo)機(jī)模式進(jìn)行開發(fā),其中主機(jī)就是常用的PC或工作站,開發(fā)環(huán)境運行在主機(jī)上,主機(jī)的操作系統(tǒng)是通用的Windows或Linux系統(tǒng)。目標(biāo)機(jī)就是嵌入式應(yīng)用系統(tǒng),它與主機(jī)間通過串行口、以太網(wǎng)或其他方式通信,從主機(jī)下載編譯好的代碼并運行。
利用GNU提供的免費交叉調(diào)試工具,開發(fā)人員可以在主機(jī)上調(diào)試目標(biāo)機(jī)上運行的程序。在目標(biāo)機(jī)上運行一個代理,以接收主機(jī)發(fā)送過來的命令和代碼,并解釋執(zhí)行。通過調(diào)試器。開發(fā)者可以設(shè)定程序運行的起止位置和斷點,同時可以查看和改變變量、寄存器和內(nèi)存中的值,設(shè)置程序運行條件等,使開發(fā)人員感到如同在本機(jī)上調(diào)試程序一樣方便。
4.3程序框圖
串口網(wǎng)橋控制程序的主要功能就是實現(xiàn)對串口數(shù)據(jù)和網(wǎng)絡(luò)數(shù)據(jù)的重組與轉(zhuǎn)發(fā)。本地主機(jī)或遠(yuǎn)端主機(jī)上的應(yīng)用程序以原有的操作本機(jī)串口的方式與連接在串口網(wǎng)橋上的設(shè)備進(jìn)行信息交互,主機(jī)上的設(shè)備驅(qū)動程序?qū)?yīng)用程序要求發(fā)送的串口數(shù)據(jù)以及對應(yīng)串口號等輔助信息轉(zhuǎn)換為網(wǎng)絡(luò)數(shù)據(jù)包,發(fā)送到以太網(wǎng)上;串口網(wǎng)橋的控制程序接收到經(jīng)以太網(wǎng)傳送過來的數(shù)據(jù)包后,將數(shù)據(jù)包解包并提取其中的串口命令數(shù)據(jù)以及目標(biāo)串口號等信息,而后重組成串口數(shù)據(jù)并發(fā)送到相應(yīng)串口??刂瞥绦蛱幚泶谠O(shè)備上傳給本地主機(jī)或遠(yuǎn)端主機(jī)的數(shù)據(jù)的方式與上述過程相反。
串口網(wǎng)橋軟件結(jié)構(gòu)如圖5所示:
5,結(jié)束語
本文討論了一個基于ARM微處理器S3C4510B及uClinux的串口網(wǎng)橋設(shè)備的軟硬件設(shè)計,對S3C4510B芯片功能進(jìn)行了簡要描述,并探討了基于該芯片的嵌入式Linux軟件開發(fā)模式.事實證明,采用Linux作為嵌入式操作系統(tǒng)并充分利用GNU提供的免費開發(fā)工具包,降低了嵌入式系統(tǒng)開發(fā)的經(jīng)濟(jì)門檻,使更多的人能夠掌握相關(guān)技術(shù),代表了嵌入式系統(tǒng)開發(fā)的一種新方向。
參考文獻(xiàn):
[1].RS-232datasheethttp://www.dzsc.com/datasheet/RS-232_584855.html.
[2].ARM7TDMIdatasheethttp://www.dzsc.com/datasheet/ARMDMI_139812.html.
[3].S3C4510Bdatasheethttp://www.dzsc.com/datasheet/S3C45_589499.html.
[4].100Mdatasheethttp://www.dzsc.com/datasheet/100M_2509927.html.
[5].RTL8201datasheethttp://www.dzsc.com/datasheet/RTL8201_586322.html.
[6].HY57V641620HGhttp://www.dzsc.com/datasheet/HY57VHG_390467.html.
[7].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[8].DM9161datasheethttp://www.dzsc.com/datasheet/DM9161_264516.html.
[9].FBGAdatasheethttp://www.dzsc.com/datasheet/FBGA_1457924.html.
[10].RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
[11].16C554datasheethttp://www.dzsc.com/datasheet/16C554_24747.html.
[12].Maximdatasheethttp://www.dzsc.com/datasheet/Maxim_1062568.html.
[13].MAX202datasheethttp://www.dzsc.com/datasheet/MAX202_1089634.html.
[14].TTLdatasheethttp://www.dzsc.com/datasheet/TTL_1174409.html.
[15].CPLDdatasheethttp://www.dzsc.com/datasheet/CPLD_1136600.html.
評論