基于ARM微處理器及嵌入試Linux的串口網(wǎng)橋軟硬件設(shè)計(jì)
● S D R A M存儲器:用兩片HY57V641620HG并聯(lián)構(gòu)建32位的SDRAM存儲器系統(tǒng),共16M字節(jié),可滿足嵌入式操作系統(tǒng)及各種相對較復(fù)雜的算法的運(yùn)行要求;
●JTAG接口:可對芯片內(nèi)部的所有部件進(jìn)行訪問,通過該接口可對系統(tǒng)進(jìn)行調(diào)試、編程等;
●多串口擴(kuò)展:用兩片STl6C554擴(kuò)展出八個(gè)串口,以同時(shí)連接多臺串口設(shè)備。
下面分別對裝置硬件結(jié)構(gòu)中的主要模塊功能進(jìn)行簡要分析。
3.1ARM微處理器S3C4510B
串口網(wǎng)橋的系統(tǒng)核心是一顆韓國三星電子生產(chǎn)的S3C45l0B-16/32位RI 5C(精簡指令集計(jì)算機(jī))微控制器。該微控制器專為以太網(wǎng)通信系統(tǒng)的集線器和路由器而設(shè)計(jì),具有低成本和高性能的特點(diǎn)。
S3C45l0B中內(nèi)置了ARM公司設(shè)計(jì)的16/32位ARM7TDMI處理器,提供了8K字節(jié)的Cache(高速緩存)和以太控制器,內(nèi)置2通道的HDLC(高級數(shù)據(jù)鏈路控制),2個(gè)UART(通用異步收發(fā))通道,內(nèi)置32位定時(shí)器和18個(gè)通用可編程I/O端口。S3C4510B內(nèi)部采用32位系統(tǒng)總線,有I2C接口,還集成了中斷控制器、DRAM/SDRAM控制器、ROM/SRAM和閃存控制器。以上功能特點(diǎn)均集成在此單芯片中,可大大減少系統(tǒng)成本。 軟件方面,S3C45l 0B因內(nèi)置ARSM7TDMI核,可以執(zhí)行32位的ARM指令,也可執(zhí)行16位的THUMB指令。
S3C4510B采用3.3V電壓供電,208腳的QFP封裝,操作頻率最高達(dá)50MHz。
3.2 10/100M以太網(wǎng)接口電路
S3C4510B內(nèi)嵌了一個(gè)以太網(wǎng)控制器,支持媒體獨(dú)立接口(Media Independent Interface,UII)和帶緩沖DMA接口(Buffered DMA Interface,BDI),可在半雙工或全雙工模式下提供10/100Mbps的以太網(wǎng)接入。在半雙工模式下,控制器支持CSMA/CD協(xié)議,在全雙工模式下支持IEEE802.3 MAC控制層協(xié)議。
但S3C4510B并未提供物理層接口,因此,需外接一片物理層芯片以提供以太網(wǎng)的接入通道。常用的單口10/l00Mbps高速以太網(wǎng)物理層接口器件主要有RTL8201,DM9161等,均提供MII接口和傳統(tǒng)7線制網(wǎng)絡(luò)接口,可方便地與S3C4510B相連。串口網(wǎng)橋的設(shè)計(jì)中使用RTL8201作為以太網(wǎng)的物理層接口。
3.3 Flash存儲器接口電路
Flash存儲器具有低功耗、大容量、擦寫速度快.可整片或分扇區(qū)在系統(tǒng)編程(燒寫)、擦除等特點(diǎn),因而在各種嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。作為一種非易失性存儲器,F(xiàn)lash在系統(tǒng)中通常用于存放程序代碼以及一些在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。系統(tǒng)中用了一片39VFl60 FLASH存儲器,其單片存儲容量為16M位(2M字節(jié)),工作電壓為2.7V~3.6V,采用48腳TSOP封裝或48腳FBGA封裝,16位數(shù)據(jù)寬度。
39VF160僅需單3V電壓即可完成在系統(tǒng)的編程與擦除操作,通過對其內(nèi)部的命令寄存器寫入標(biāo)準(zhǔn)的命令序列,可對Flash進(jìn)行編程(燒寫)、整片擦除、按扇區(qū)擦除以及其他操作。
3.4 SDRAM接口電路
SDPAM在系統(tǒng)中主要用作程序的運(yùn)行空間,數(shù)據(jù)及堆棧。當(dāng)系統(tǒng)啟動
時(shí),CPU首先從復(fù)位地址起始處開始讀取啟動代碼,在完成系統(tǒng)的初始化后,程序代碼一般應(yīng)調(diào)入SDRAM中運(yùn)行,以提高系統(tǒng)的運(yùn)行速度,同時(shí),系統(tǒng)堆棧,用戶堆棧以及運(yùn)行數(shù)據(jù)也都放在SDRAM中。
要在系統(tǒng)中使用SDRAM.要求微處理器具有刷新控制邏輯,或在系統(tǒng)中另外加入刷新控制邏輯電路。S3C4510B及其他一些ARM芯片在片內(nèi)具有獨(dú)立的SDRAM刷新控制邏輯,可方便地與SDRAM相連接。
HY57V641620HG為16位數(shù)據(jù)寬度,單片容量為8M字節(jié),為充分發(fā)揮32位CPU的數(shù)據(jù)處理能力,串口網(wǎng)橋設(shè)計(jì)中用兩片HY57V641620HG并聯(lián)構(gòu)成32位的SDRAM存儲器系統(tǒng),共16M字節(jié)的SDRAM空間,可滿足嵌入式操作系統(tǒng)及各種相對較復(fù)雜的算法的運(yùn)行要求。
3.5 JTAG接口電路
JTAG(Joint Test Action Group)是一種國際標(biāo)準(zhǔn)測試協(xié)議,主要用于芯片內(nèi)部測試及對系統(tǒng)進(jìn)行仿真、調(diào)試。JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專門的測試電路,可以通過專用的JTAG測試軟件對芯片內(nèi)部節(jié)點(diǎn)進(jìn)行測試。目前大多數(shù)比較復(fù)雜的器件都支持JTAG協(xié)議,如ARM、DSP,F(xiàn)PGA器件等。JTAG接口常用于實(shí)現(xiàn)ISP(In-System Programmable,在系統(tǒng)編程)功能,如對FLASH器件進(jìn)行編程等。通過JTAG接口,可對芯片內(nèi)部的所有部件進(jìn)行訪問,因而是開發(fā)調(diào)試嵌入式系統(tǒng)的一種簡潔而高效的手段。
3.6多串口擴(kuò)展
串口網(wǎng)橋提供八個(gè)標(biāo)準(zhǔn)RS232串口以連接多臺串口設(shè)備。當(dāng)然。S3C4510B不可能提供這么多個(gè)串口,因此我們需要自己擴(kuò)展。
多串口擴(kuò)展原理如圖3所示。
STl6C554是集成異步通信元件,每片16C554中包含4個(gè)改良的16C350異步傳輸器件,每個(gè)通道有獨(dú)立的16字節(jié)接收緩沖器和16字節(jié)發(fā)送緩沖器,可以達(dá)到更高的通訊速率而無需占用過多的CPU資源。
Maxim公司的MAX202芯片是標(biāo)準(zhǔn)的RS232電平轉(zhuǎn)換器,是符合RS232通信標(biāo)準(zhǔn)的接口芯片,該芯片功耗低,集成度高,使用單一5V電源,每片有2個(gè)驅(qū)動器和2個(gè)接收器,具有2組接收和發(fā)送通道,接口電路簡單,可靠性高,可實(shí)現(xiàn)TTL電平和RS232電平的直接轉(zhuǎn)換。
串口數(shù)據(jù)信號通過MAX202轉(zhuǎn)換成TTL電平,再通過STl6C554輸出中斷請求。八個(gè)串口的中斷請求或起來產(chǎn)生IRQ信號INTREQ,經(jīng)CPLD再與CPU的中斷控制器相連。
設(shè)計(jì)中使用CPLD主要是為了解決多串口共享一個(gè)中斷源時(shí)必然產(chǎn)生的中斷重疊問題。為提高可靠性,系統(tǒng)中的八個(gè)串口均采用中斷方式進(jìn)行數(shù)據(jù)處理,并且八個(gè)串口共享一個(gè)中斷源。在共用的中斷服務(wù)程序中,程序按順序?qū)Π藗€(gè)串口進(jìn)行一次數(shù)據(jù)檢測。若發(fā)現(xiàn)某個(gè)串口有數(shù)據(jù),則進(jìn)行相應(yīng)處理。但這樣一來,將會產(chǎn)生如下問題:例如,中斷服務(wù)程序剛對串口l進(jìn)行檢測,沒有發(fā)現(xiàn)數(shù)據(jù),則轉(zhuǎn)向串口2進(jìn)行檢測,發(fā)現(xiàn)串口2有數(shù)據(jù),因此程序?qū)⑦M(jìn)行串口2的數(shù)據(jù)處理,如果這時(shí)串口l發(fā)生中斷請求,由于CPU無法保存該請求脈沖,串口l的中斷請求將被忽略。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論