基于ARM微處理器及嵌入試Linux的串口網(wǎng)橋軟硬件設計
出處:bcaiyo 發(fā)布于:2007-04-29 09:19:10
基于ARM微處理器及嵌入試Linux的串口網(wǎng)橋軟硬件設計
許振山 晏寄夫 王富榮
西南交通大學電氣學院 四川成都 610031
l、引言
在電力系統(tǒng)自動化控制及其他工業(yè)控制、民用設備如商場銷售系統(tǒng)等領域,眾多設備的對外通訊接口仍然是低速串口。串口由于其易用性、可靠性及相對于工控設備來說足夠高的通信能力而長盛不衰。然而,串口有一個重大弱點就是傳輸距離短且無法與網(wǎng)絡直接相連,造成設備無法實現(xiàn)遠程控制及數(shù)據(jù)共享,而這些恰恰是實現(xiàn)工業(yè)控制高度自動化的必須條件。因此,要求設計一種使串口設備快捷方便地實現(xiàn)聯(lián)網(wǎng)功能的裝置,而且要求其成本低廉,我們稱之為串口網(wǎng)橋或串口設備聯(lián)網(wǎng)服務器。
2、串口網(wǎng)橋簡介
我們設計的串口網(wǎng)橋是一個可以為RS-232串口設備提供聯(lián)網(wǎng)能力的設備聯(lián)網(wǎng)服務器。裝置主要完成主機與串口設備間交流數(shù)據(jù)的過濾與轉發(fā)功能,將RS-232信號轉換成TCP/IP協(xié)議,使設備數(shù)據(jù)可以在I n t e r n e t或 Intranet上流通、共享。牢門網(wǎng)橋具體功能描述如下:
● (遠程、本地)主機可以如操作本機串口一樣通過TCP/1P網(wǎng)絡對串口設備進行遠程數(shù)據(jù)讀取,資料處理和數(shù)據(jù)多點傳輸,即串口設備原有的主機方應用程序不需任何修改即可重新利用;
●支持主機以Web方式及Telnet方式登錄修改配置;
●可在網(wǎng)橋裝置上直接設置IP地址;
●自動檢測10/100Mbps Ethernet網(wǎng)絡;
●可同時操作8個串口設備。串口網(wǎng)橋裝置廣泛應用于工業(yè)設備聯(lián)網(wǎng)自動化、門禁考勤管理、商場銷售系統(tǒng)聯(lián)網(wǎng)自動化、遠程影像傳輸?shù)缺姸囝I域,它的典型應用如圖1所示:
3、系統(tǒng)硬件結構
串口網(wǎng)橋的硬件結構原理圖如圖2所示:
各主要模塊基本組成描述如下:
●每微處理器MCU:采用SAMISUNG公司生產的ARM7TDMI內核S3C4510B處理器;
● 1 0/100M以太網(wǎng)接口:用一片RTL8201與S3C4510B片內的MAC控制器一起組成以太網(wǎng)接口電路,并通過網(wǎng)絡隔離變壓器與RJ45以太網(wǎng)口相連;
●FLASH存儲器:采用一片39VFl60
FLASH存儲器,大小為2M字節(jié),用于存
放已調試好的用戶應用程序、嵌入式
操作系統(tǒng)以及其他在系統(tǒng)掉電后需要
保存的用戶數(shù)據(jù)等;
● S D R A M存儲器:用兩片HY57V641620HG并聯(lián)構建32位的SDRAM存儲器系統(tǒng),共16M字節(jié),可滿足嵌入式操作系統(tǒng)及各種相對較復雜的算法的運行要求;
●JTAG接口:可對芯片內部的所有部件進行訪問,通過該接口可對系統(tǒng)進行調試、編程等;
●多串口擴展:用兩片STl6C554擴展出八個串口,以同時連接多臺串口設備。
下面分別對裝置硬件結構中的主要模塊功能進行簡要分析。
3.1ARM微處理器S3C4510B
串口網(wǎng)橋的系統(tǒng)是一顆韓國三星電子生產的S3C45l0B-16/32位RI 5C(精簡指令集計算機)微控制器。該微控制器專為以太網(wǎng)通信系統(tǒng)的集線器和路由器而設計,具有低成本和高性能的特點。
S3C45l0B中內置了ARM公司設計的16/32位ARM7TDMI處理器,提供了8K字節(jié)的Cache(高速緩存)和以太控制器,內置2通道的HDLC(數(shù)據(jù)鏈路控制),2個UART(通用異步收發(fā))通道,內置32位定時器和18個通用可編程I/O端口。S3C4510B內部采用32位系統(tǒng)總線,有I2C接口,還集成了中斷控制器、DRAM/SDRAM控制器、ROM/SRAM和閃存控制器。以上功能特點均集成在此單芯片中,可大大減少系統(tǒng)成本。 軟件方面,S3C45l 0B因內置ARSM7TDMI核,可以執(zhí)行32位的ARM指令,也可執(zhí)行16位的THUMB指令。
S3C4510B采用3.3V電壓供電,208腳的QFP封裝,操作頻率達50MHz。
3.2 10/100M以太網(wǎng)接口電路
S3C4510B內嵌了一個以太網(wǎng)控制器,支持媒體獨立接口(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)絡接口,可方便地與S3C4510B相連。串口網(wǎng)橋的設計中使用RTL8201作為以太網(wǎng)的物理層接口。
3.3 Flash存儲器接口電路
Flash存儲器具有低功耗、大容量、擦寫速度快.可整片或分扇區(qū)在系統(tǒng)編程(燒寫)、擦除等特點,因而在各種嵌入式系統(tǒ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)的編程與擦除操作,通過對其內部的命令寄存器寫入標準的命令序列,可對Flash進行編程(燒寫)、整片擦除、按扇區(qū)擦除以及其他操作。
3.4 SDRAM接口電路
SDPAM在系統(tǒng)中主要用作程序的運行空間,數(shù)據(jù)及堆棧。當系統(tǒng)啟動
時,CPU首先從復位地址起始處開始讀取啟動代碼,在完成系統(tǒng)的初始化后,程序代碼一般應調入SDRAM中運行,以提高系統(tǒng)的運行速度,同時,系統(tǒng)堆棧,用戶堆棧以及運行數(shù)據(jù)也都放在SDRAM中。
要在系統(tǒng)中使用SDRAM.要求微處理器具有刷新控制邏輯,或在系統(tǒng)中另外加入刷新控制邏輯電路。S3C4510B及其他一些ARM芯片在片內具有獨立的SDRAM刷新控制邏輯,可方便地與SDRAM相連接。
HY57V641620HG為16位數(shù)據(jù)寬度,單片容量為8M字節(jié),為充分發(fā)揮32位CPU的數(shù)據(jù)處理能力,串口網(wǎng)橋設計中用兩片HY57V641620HG并聯(lián)構成32位的SDRAM存儲器系統(tǒng),共16M字節(jié)的SDRAM空間,可滿足嵌入式操作系統(tǒng)及各種相對較復雜的算法的運行要求。
3.5 JTAG接口電路
JTAG(Joint Test Action Group)是一種國際標準測試協(xié)議,主要用于芯片內部測試及對系統(tǒng)進行仿真、調試。JTAG技術是一種嵌入式調試技術,它在芯片內部封裝了專門的測試電路,可以通過專用的JTAG測試軟件對芯片內部節(jié)點進行測試。目前大多數(shù)比較復雜的器件都支持JTAG協(xié)議,如ARM、DSP,F(xiàn)PGA器件等。JTAG接口常用于實現(xiàn)ISP(In-System Programmable,在系統(tǒng)編程)功能,如對FLASH器件進行編程等。通過JTAG接口,可對芯片內部的所有部件進行訪問,因而是開發(fā)調試嵌入式系統(tǒng)的一種簡潔而高效的手段。
3.6多串口擴展
串口網(wǎng)橋提供八個標準RS232串口以連接多臺串口設備。當然。S3C4510B不可能提供這么多個串口,因此我們需要自己擴展。
多串口擴展原理如圖3所示。
STl6C554是集成異步通信元件,每片16C554中包含4個改良的16C350異步傳輸器件,每個通道有獨立的16字節(jié)接收緩沖器和16字節(jié)發(fā)送緩沖器,可以達到更高的通訊速率而無需占用過多的CPU資源。
Maxim公司的MAX202芯片是標準的RS232電平轉換器,是符合RS232通信標準的接口芯片,該芯片功耗低,集成度高,使用單一5V電源,每片有2個驅動器和2個接收器,具有2組接收和發(fā)送通道,接口電路簡單,可靠性高,可實現(xiàn)TTL電平和RS232電平的直接轉換。
串口數(shù)據(jù)信號通過MAX202轉換成TTL電平,再通過STl6C554輸出中斷請求。八個串口的中斷請求或起來產生IRQ信號INTREQ,經(jīng)CPLD再與CPU的中斷控制器相連。
設計中使用CPLD主要是為了解決多串口共享一個中斷源時必然產生的中斷重疊問題。為提高可靠性,系統(tǒng)中的八個串口均采用中斷方式進行數(shù)據(jù)處理,并且八個串口共享一個中斷源。在共用的中斷服務程序中,程序按順序對八個串口進行數(shù)據(jù)檢測。若發(fā)現(xiàn)某個串口有數(shù)據(jù),則進行相應處理。但這樣一來,將會產生如下問題:例如,中斷服務程序剛對串口l進行檢測,沒有發(fā)現(xiàn)數(shù)據(jù),則轉向串口2進行檢測,發(fā)現(xiàn)串口2有數(shù)據(jù),因此程序將進行串口2的數(shù)據(jù)處理,如果這時串口l發(fā)生中斷請求,由于CPU無法保存該請求脈沖,串口l的中斷請求將被忽略。
為了解決這個問題,可以在共享中斷源后面加一個用CPLD實現(xiàn)的邏輯電路。該邏輯電路由兩部分組成,部分是一個可尋址的寄存器INTEN,作為共享中斷的允許位。第二部分是一個狀態(tài)機邏輯電路,該電路共有三個狀態(tài):S 0是等待狀態(tài),該狀態(tài)下INTEN=I,只要任何一個串口產生中斷請求,CPU將馬上響應該中斷;Sl是中斷服務狀態(tài),中斷服務程序一開始執(zhí)行,馬上將INTEN設置為0,以屏蔽其他中斷請求,退出中斷服務程序時,再將INTEN設置為1,中斷服務程序執(zhí)行期間產生的串口中斷請求由INTREQ鎖存;S2為延時狀態(tài),延時50us,以確保中斷服務程序完全退出。
狀態(tài)機邏輯電路狀態(tài)圖如圖4所示:
4.系統(tǒng)軟件平臺
4.5 uC1inux操作系統(tǒng)簡介
Linux是一種很受歡迎的類UNIX操作系統(tǒng),它并開放源代碼,在個人計算機、服務器領域應用廣泛。更重要的是,Linux采取模塊化設計,實際應用中可以實現(xiàn)定制,因此Linux也適用于嵌入式領域。uClinux正是Linux的一個嵌入式版本,其內核的二進制映像文件可以做到小于512K。
uClinux針對無MMU(Memory Management Unit,內存管理單元)的處理器設計,支持多任務,具有完備的TCP/IP協(xié)議棧并支持多種網(wǎng)絡協(xié)議。uClinux還支持多種文件系統(tǒng),如ROMFS,NFS,F(xiàn)ATl6/32。實際上,uClinux已經(jīng)成功應用于路由器、網(wǎng)絡攝像機、機頂盒、PDA等諸多領域。
另外,uClinux可移植性很強,用戶通過重新配置、編譯內核,可以很方便地將其移植到ARM,Dragon Ball、ColdFire、Power PC等多種處理器計算平臺。當前uClinux主要提供2.0和2.4兩個內核版本。
4.2軟件開發(fā)調試方法
嵌入式Linux軟件開發(fā)可以采用一種特殊的模式:主機--目標機模式進行開發(fā),其中主機就是常用的PC或工作站,開發(fā)環(huán)境運行在主機上,主機的操作系統(tǒng)是通用的Windows或Linux系統(tǒng)。目標機就是嵌入式應用系統(tǒng),它與主機間通過串行口、以太網(wǎng)或其他方式通信,從主機編譯好的代碼并運行。
利用GNU提供的交叉調試工具,開發(fā)人員可以在主機上調試目標機上運行的程序。在目標機上運行一個代理,以接收主機發(fā)送過來的命令和代碼,并解釋執(zhí)行。通過調試器。開發(fā)者可以設定程序運行的起止位置和斷點,同時可以查看和改變變量、寄存器和內存中的值,設置程序運行條件等,使開發(fā)人員感到如同在本機上調試程序一樣方便。
4.3程序框圖
串口網(wǎng)橋控制程序的主要功能就是實現(xiàn)對串口數(shù)據(jù)和網(wǎng)絡數(shù)據(jù)的重組與轉發(fā)。本地主機或遠端主機上的應用程序以原有的操作本機串口的方式與連接在串口網(wǎng)橋上的設備進行信息交互,主機上的設備驅動程序將應用程序要求發(fā)送的串口數(shù)據(jù)以及對應串口號等輔助信息轉換為網(wǎng)絡數(shù)據(jù)包,發(fā)送到以太網(wǎng)上;串口網(wǎng)橋的控制程序接收到經(jīng)以太網(wǎng)傳送過來的數(shù)據(jù)包后,將數(shù)據(jù)包解包并提取其中的串口命令數(shù)據(jù)以及目標串口號等信息,而后重組成串口數(shù)據(jù)并發(fā)送到相應串口??刂瞥绦蛱幚泶谠O備上傳給本地主機或遠端主機的數(shù)據(jù)的方式與上述過程相反。
串口網(wǎng)橋軟件結構如圖5所示:
5,結束語
本文討論了一個基于ARM微處理器S3C4510B及uClinux的串口網(wǎng)橋設備的軟硬件設計,對S3C4510B芯片功能進行了簡要描述,并探討了基于該芯片的嵌入式Linux軟件開發(fā)模式.事實證明,采用Linux作為嵌入式操作系統(tǒng)并充分利用GNU提供的開發(fā)工具包,降低了嵌入式系統(tǒng)開發(fā)的經(jīng)濟門檻,使更多的人能夠掌握相關技術,代表了嵌入式系統(tǒng)開發(fā)的一種新方向。
參考文獻:
[1]. RS-232 datasheet http://m.58mhw.cn/datasheet/RS-232_584855.html.
[2]. ARM7TDMI datasheet http://m.58mhw.cn/datasheet/ARM7TDMI_139812.html.
[3]. S3C4510B datasheet http://m.58mhw.cn/datasheet/S3C4510B_589499.html.
[4]. 100M datasheet http://m.58mhw.cn/datasheet/100M_2509927.html.
[5]. RTL8201 datasheet http://m.58mhw.cn/datasheet/RTL8201_586322.html.
[6]. HY57V641620HG datasheet http://m.58mhw.cn/datasheet/HY57V641620HG_390467.html.
[7]. ROM datasheet http://m.58mhw.cn/datasheet/ROM_1188413.html.
[8]. DM9161 datasheet http://m.58mhw.cn/datasheet/DM9161_264516.html.
[9]. FBGA datasheet http://m.58mhw.cn/datasheet/FBGA_1457924.html.
[10]. RS232 datasheet http://m.58mhw.cn/datasheet/RS232_585128.html.
[11]. 16C554 datasheet http://m.58mhw.cn/datasheet/16C554_24747.html.
[12]. Maxim datasheet http://m.58mhw.cn/datasheet/Maxim_1062568.html.
[13]. MAX202 datasheet http://m.58mhw.cn/datasheet/MAX202_1089634.html.
[14]. TTL datasheet http://m.58mhw.cn/datasheet/TTL_1174409.html.
[15]. CPLD datasheet http://m.58mhw.cn/datasheet/CPLD_1136600.html.
版權與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。
如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
- ARM技術架構與應用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術選型與抗干擾設計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎知識2025/7/14 16:59:04









