新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM微處理器及嵌入試Linux的串口網(wǎng)橋軟硬件設(shè)計(jì)

基于ARM微處理器及嵌入試Linux的串口網(wǎng)橋軟硬件設(shè)計(jì)

作者: 時(shí)間:2012-10-29 來源:網(wǎng)絡(luò) 收藏

為了解決這個問題,可以在共享中斷源后面加一個用CPLD實(shí)現(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ù)程序時(shí),再將INTEN設(shè)置為1,中斷服務(wù)程序執(zhí)行期間產(chǎn)生的串口中斷請求由INTREQ鎖存;S2為延時(shí)狀態(tài),延時(shí)50us,以確保中斷服務(wù)程序完全退出。

狀態(tài)機(jī)邏輯電路狀態(tài)圖如圖4所示:

4.系統(tǒng)軟件平臺

4.5 uC1inux操作系統(tǒng)簡介

是一種很受歡迎的類UNIX操作系統(tǒng),它免費(fèi)并開放源代碼,在個人計(jì)算機(jī)、服務(wù)器領(lǐng)域應(yīng)用廣泛。更重要的是,采取模塊化設(shè)計(jì),實(shí)際應(yīng)用中可以實(shí)現(xiàn)定制,因此也適用于嵌入式領(lǐng)域。uClinux正是Linux的一個嵌入式版本,其內(nèi)核的二進(jìn)制映像文件可以做到小于512K。

uClinux針對無MMU(Memory Management Unit,內(nèi)存管理單元)的處理器設(shè)計(jì),支持多任務(wù),具有完備的TCP/IP協(xié)議棧并支持多種網(wǎng)絡(luò)協(xié)議。uClinux還支持多種文件系統(tǒng),如ROMFS,NFS,F(xiàn)ATl6/32。實(shí)際上,uClinux已經(jīng)成功應(yīng)用于路由器、網(wǎng)絡(luò)攝像機(jī)、機(jī)頂盒、PDA等諸多領(lǐng)域。

另外,uClinux可移植性很強(qiáng),用戶通過重新配置、編譯內(nèi)核,可以很方便地將其移植到ARM,Dragon Ball、ColdFire、Power PC等多種處理器計(jì)算平臺。當(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)境運(yùn)行在主機(jī)上,主機(jī)的操作系統(tǒng)是通用的Windows或Linux系統(tǒng)。目標(biāo)機(jī)就是嵌入式應(yīng)用系統(tǒng),它與主機(jī)間通過串行口、以太網(wǎng)或其他方式通信,從主機(jī)下載編譯好的代碼并運(yùn)行。

利用GNU提供的免費(fèi)交叉調(diào)試工具,開發(fā)人員可以在主機(jī)上調(diào)試目標(biāo)機(jī)上運(yùn)行的程序。在目標(biāo)機(jī)上運(yùn)行一個代理,以接收主機(jī)發(fā)送過來的命令和代碼,并解釋執(zhí)行。通過調(diào)試器。開發(fā)者可以設(shè)定程序運(yùn)行的起止位置和斷點(diǎn),同時(shí)可以查看和改變變量、寄存器和內(nèi)存中的值,設(shè)置程序運(yùn)行條件等,使開發(fā)人員感到如同在本機(jī)上調(diào)試程序一樣方便。

4.3程序框圖

控制程序的主要功能就是實(shí)現(xiàn)對串口數(shù)據(jù)和網(wǎng)絡(luò)數(shù)據(jù)的重組與轉(zhuǎn)發(fā)。本地主機(jī)或遠(yuǎn)端主機(jī)上的應(yīng)用程序以原有的操作本機(jī)串口的方式與連接在上的設(shè)備進(jìn)行信息交互,主機(jī)上的設(shè)備驅(qū)動程序?qū)?yīng)用程序要求發(fā)送的串口數(shù)據(jù)以及對應(yīng)串口號等輔助信息轉(zhuǎn)換為網(wǎng)絡(luò)數(shù)據(jù)包,發(fā)送到以太網(wǎng)上;的控制程序接收到經(jīng)以太網(wǎng)傳送過來的數(shù)據(jù)包后,將數(shù)據(jù)包解包并提取其中的串口命令數(shù)據(jù)以及目標(biāo)串口號等信息,而后重組成串口數(shù)據(jù)并發(fā)送到相應(yīng)串口。控制程序處理串口設(shè)備上傳給本地主機(jī)或遠(yuǎn)端主機(jī)的數(shù)據(jù)的方式與上述過程相反。

串口網(wǎng)橋軟件結(jié)構(gòu)如圖5所示:

5,結(jié)束語

本文討論了一個基于S3C4510B及uClinux的串口網(wǎng)橋設(shè)備的軟硬件設(shè)計(jì),對S3C4510B芯片功能進(jìn)行了簡要描述,并探討了基于該芯片的嵌入式Linux軟件開發(fā)模式.事實(shí)證明,采用Linux作為嵌入式操作系統(tǒng)并充分利用GNU提供的免費(fèi)開發(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.

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉