《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 基于ARM與μClinux的RTU設(shè)計

基于ARM與μClinux的RTU設(shè)計

2008-08-19
作者:曾為民1 李志康1 李宏利2

  摘 要: 基于ARM處理器S3C4510B和μClinux的RTU總體結(jié)構(gòu)設(shè)計,、RTU硬件擴展方法以及在μClinux環(huán)境下開發(fā)RTU應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序的經(jīng)驗,。定義了一種RTU母板總線,,介紹了由處理器總線驅(qū)動RTU母板總線的接口電路" title="接口電路">接口電路原理以及RTU母板總線上擴展硬件模塊的方法,。
  關(guān)鍵詞: RTU S3C4510B μClinux 嵌入式系統(tǒng)

?

  在電力系統(tǒng)變電所以及電氣化鐵道牽引變電所遠動控制系統(tǒng)中,,遠程數(shù)據(jù)采集與監(jiān)控終端(RTU)是關(guān)鍵設(shè)備,,實現(xiàn)遙控,、遙測、遙信等功能,。
  采用工業(yè)控制計算機,,擴展測控硬件接口電路,是RTU設(shè)計常見的方法,,但是這種方法設(shè)計的RTU成本高,、體積大,、耗電大,。采用80C196等單片機設(shè)計RTU,,由于單片機的運算處理和硬件擴展等能力較低,影響RTU的性能,。而基于ARM處理器設(shè)計的RTU,,硬件上具有成本低、體積小,、耗電省,、處理能力強等優(yōu)點;軟件上由于采用μClinux操作系統(tǒng),,有許多優(yōu)秀的應(yīng)用程序成果可以利用,。正是由于這些優(yōu)勢,采用ARM和μClinux設(shè)計RTU已經(jīng)成為一個熱點[1],。
1 RTU硬件電路設(shè)計
1.1 RTU總體結(jié)構(gòu)

  RTU的核心部分是計算機,,包括處理器、存儲器,、人機接口等,。為了執(zhí)行RTU的測控功能,需要擴展大量外圍接口電路,。不同變電所的測控對象數(shù)量差別很大,。為了提高RTU的通用性,一種普遍采用的可行的辦法是將測控電路模塊化,。根據(jù)模塊化的設(shè)計思想以及S3C4510B[2]和μClinux[3]的特點,,RTU硬件總體結(jié)構(gòu)設(shè)計的原理框圖如圖1。


  各種電路按功能設(shè)計成相應(yīng)模塊,,以母板總線為接口基礎(chǔ),。
  主板模塊以S3C4510B為核心。主要配置是:16M字節(jié)動態(tài)隨機存儲器SDRAM(兩片HY57V651620B),,2M字節(jié)的Flash(一片AM29LV160DB),;處理器內(nèi)部集成兩個異步串行通信接口,串口" title="串口">串口0和串口1,;一個10Mbps以太網(wǎng)接口,;看門狗與復位電路(MAX507);RTU母板總線驅(qū)動電路" title="驅(qū)動電路">驅(qū)動電路,。
  串口0作為控制臺,,用于調(diào)試;串口1接LCD顯示屏和觸摸屏,,實現(xiàn)當?shù)乇O(jiān)控的人機界面,。
  測控接口電路主要有遙控模塊、遙信模塊(開關(guān)量采集)和遙測模塊(模擬量采集)。遙控和搖信模塊由母板總線直接擴展,。遙測模塊采用現(xiàn)場總線(CAN)通信接口,。為此在RTU母板總線上擴展CAN總線通信模塊,實現(xiàn)與遙測模塊的通信,。
  串口模塊(PC16C550)從母板總線上擴展,。用該模塊連接調(diào)制解調(diào)器(MODEM),實現(xiàn)RTU遠程通信,。
1.2 RTU母板總線
  RTU母板總線是測控硬件模塊擴展的基礎(chǔ),,又是處理器總線上的一個外設(shè)接口。
  為便于模塊的擴展,,RTU母板總線定義如下:數(shù)據(jù)總線H-D0~H-D7,;地址總線H-A0~H-A7;地址片選信號H-S0~H-S6,;讀寫控制信號" title="控制信號">控制信號H-WR和H-RD,;地址鎖存控制信號H-ALE;中斷服務(wù)請求控制信號H-INT0~H-INT3,;復位信號H-RESET,。
  使用處理器的如下總線信號驅(qū)動RTU母板總線:地址總線A0~A11、數(shù)據(jù)總線D0~D7,、讀使能控制信號nOE,、寫使能控制信號nWBE0、外設(shè)(I/O)地址片選信號nECS0,,以及4根中斷控制信號線nINREQ0~nINREQ3,。
1.2.1 總線驅(qū)動電路
  為兼容測控接口電路較常用的器件,母板總線按照5V的TTL電平設(shè)計,。S3C4510B總線是3.3V的CMOS電平,。
  處理器總線與RTU母板總線存在速度和電平上的差別,不能直接相連,,它們之間需要一個總線驅(qū)動電路,。
  總線驅(qū)動電路是主板模塊的一部分。它實現(xiàn)處理器總線到RTU母板總線的接口擴展,、電平轉(zhuǎn)換和驅(qū)動,。總線驅(qū)動接口電路如圖2,。


  采用雙電源供電的雙向總線緩沖器74LVX4245,實現(xiàn)處理器數(shù)據(jù)總線與RTU母板數(shù)據(jù)總線之間的電平轉(zhuǎn)換和驅(qū)動,。
  三八譯碼器U1,將2K字節(jié)地址空間譯為8個地址片選信號,稱為S0~S7,,其中S0~S6由總線驅(qū)動芯片74LS244驅(qū)動后,,作為RTU母板總線地址片選信號,。
1.2.2 地址鎖存信號ALE實現(xiàn)
  一些常用的芯片,如CAN總線控制器SJA1000,、時鐘芯片DS12887等,,內(nèi)部帶一個地址鎖存器,需要地址鎖存信號ALE,,才能實現(xiàn)接口,。S3C4510B沒有ALE信號,,所以母板總線擴展ALE信號,,才能實現(xiàn)這類器件的接口。
  將U1的一個地址片選信號S7取反,,寫數(shù)據(jù)到S7地址,,可以模擬出ALE控制信號,并實現(xiàn)ALE的功能,。
1.2.3 RTU母板總線的地址和訪問速度
  RTU母板總線作為處理器的一個外設(shè),,其地址和訪問速度由處理器決定。
  S3C4510B總線統(tǒng)一編址,。nECS0是外設(shè)地址片選信號,,占外設(shè)地址空間起始的16K字節(jié)。
  nECS0接U3使能端,,決定RTU母板總線的基地址和訪問速度,。S3C4510B控制寄存器EXTDBWTH第20位置1、21位置0,,表示nECS0按8位方式尋址,。寄存器REFEXTCON的低10位設(shè)為0x360,則nECS0的基地址是0x3600000,。
  置控制寄存器EXTACON0為0x0fff,,則S3C4510B對RTU母板總線的讀寫時間是7個CPU時鐘周期。


1.3 基于RTU母板總線的模塊擴展
  圖3是擴展CAN總線通信模塊的電路原理圖,。CAN總線模塊以SJA1000為核心,,通信數(shù)據(jù)經(jīng)高速光電耦合器G1、G2隔離,,82C250驅(qū)動,,從接線端子J2連接到外部CAN總線。P1是1W的5V轉(zhuǎn)5V的DC/DC電源模塊,。CAN模塊使用H-S0作為片選信號,,其基地址是0x3600000。
  圖3給出了SJA1000與RTU母板總線的連接關(guān)系,。SJA1000總線兼容TTL電平,,數(shù)據(jù)總線和中斷信號線有驅(qū)動能力,,可以直接與母板總線接口。由圖3可見,,從RTU母板總線上擴展測控電路簡單方便,。
  基于母板總線的其它模塊擴展方法類似。
2 RTU軟件設(shè)計
  μClinux從linux操作系統(tǒng)改進而來,,適合運行在S3C4510B這種無內(nèi)存管理單元MMU的處理器中,。基于工控機-linux的RTU程序,,可以很方便地移植到ARM-μClinux設(shè)計的RTU中,。
  RTU程序的開發(fā),包括應(yīng)用程序開發(fā)和驅(qū)動程序開發(fā)兩部分,,全部采用C語言編寫,。
2.1 RTU應(yīng)用程序調(diào)試
  使用JTAG仿真器工具和相應(yīng)工具軟件,將μClinux操作系統(tǒng)燒寫到主板模塊的Flash中,。μClinux在主板模塊上運行后,,可以使用μClinux提供的工具軟件在Flash上更新自身及應(yīng)用程序。
  連接PC機的串口與主板模塊的串口0,。用Windows超級終端,,與主板模塊建立交互關(guān)系。將主板模塊與PC機接入同一個局域網(wǎng),,配置合適的IP地址,。
  使用文件傳輸服務(wù)工具FTP或TFTP,將PC機編譯的μClinux應(yīng)用程序下載到主板模塊/ramdisk目錄中,,改為可執(zhí)行屬性后執(zhí)行,。應(yīng)用程序中加入printf()函數(shù),輸出執(zhí)行過程中的調(diào)試信息,。
2.2 JFFS2文件系統(tǒng)應(yīng)用
  JFFS2(The Journalling Flash File System, version 2)是一種為嵌入式系統(tǒng)Flash存儲文件而設(shè)計的文件系統(tǒng),。μClinux編譯選項,加入JFFS2文件系統(tǒng),。將2MB的Flash分成mtd0和mtd1兩個區(qū),,各為1MB。mtd0是從0地址開始的存儲空間,,用于存儲μClinux操作系統(tǒng)鏡像文件,。mtd1用于存儲應(yīng)用程序。μClinux的/dev目錄中,,有字符型設(shè)備文件mtd0,、mtd1和對應(yīng)的塊設(shè)備文件mtdblock0、mtdblock1,。
  有了JFFS2文件系統(tǒng)支持,,使用文件拷貝操作方法,,即可將RTU的操作系統(tǒng)和應(yīng)用程序在Flash上更新。RTU的開發(fā)和現(xiàn)場調(diào)試,,可以脫離JTAG仿真器工具,,給RTU開發(fā)和維護提供了方便。
2.3 更新μClinux的步驟
  (1)用FTP傳輸操作系統(tǒng)文件IMAGE.ROM到/ramdisk/目錄,;(2)擦除mtd0分區(qū):eraseall /dev/mtd0,;(3)將IMAGE.ROM寫入mtd0:cp/ramdisk/IMAGE.ROM/dev/mtd0。
  當提示操作完成后,,復位主板模塊即運行新的操作系統(tǒng),。由于μClinux操作系統(tǒng)在SDRAM中運行,更新操作系統(tǒng)過程中不能停電,。
2.4 應(yīng)用程序在Flash上的更新與執(zhí)行
  (1)安裝mtd1分區(qū):mount-t-jffs2 /dev/mtdblock1/mnt,。此操作將mtd1分區(qū)按塊設(shè)備方式安裝在μClinux的/mnt目錄中,。在/mnt目錄中添加的文件,,存儲在Flash中,不會因掉電而丟失,。(2)將應(yīng)用程序myapp下載到/ramdisk目錄,,然后cp /ramdisk/myapp /mnt。即完成了應(yīng)用程序在Flash上的更新,。(3)修改文件屬性:chmod 755 /mnt/myapp,。(4)執(zhí)行文件:./mnt/myapp。
  μClinux啟動后,,讀取并執(zhí)行/proc/rc文件中的命令,。要使myapp應(yīng)用程序自動執(zhí)行,在rc文件中,,加入
  mount -t jffs2 /dev/mtdblock1 /mnt
  ./mnt/myapp
  系統(tǒng)啟動后,,自動安裝mtd1分區(qū),執(zhí)行應(yīng)用程序myapp,。
  基于本文設(shè)計的RTU,,連接到一個電網(wǎng)數(shù)據(jù)采集與監(jiān)控系統(tǒng),經(jīng)試運行,,性能穩(wěn)定可靠,。證明文中設(shè)計的RTU的原理是正確的。
參考文獻
1 嚴亞勤,,吳文傳,,張伯明. 基于嵌入式Linux的網(wǎng)絡(luò)RTU[J]. 電力自動化設(shè)備,2004;24(9):27~29
2 μm_s3c4510b_rev1.pdf. www.samsung.com.
3 皺思秩.嵌入式Linux設(shè)計與應(yīng)用[M].北京:清華大學出版社,2002.第1版

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。