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