江守亮,胡鵬飛
(西南交通大學電氣工程學院,1.碩士研究生;2.副教授、碩士生導師,四川 成都 610031)
目前,我國正處于高速鐵路大發展的時期。實現高速需要克服許多技術難點。因此,伴隨計算機技術的發展,列車牽引、供電、制動系統,以及主動控制都廣泛應用了計算機技術,導致車載計算機設備數量的增加。為了實現大量設備的信息交換與共享,進而實現列車安全運行、遠程故障診斷和維護,引進了列車控制網絡。目前,我國尚無自主知識產權的列車網絡技術,必須大力攻關。但組建網絡系統,需要各個網絡接口的支持。ARCNET作為其中的一種現場總線,已在日本的高速列車中使用,我國南車集團四方車輛股份公司引進日本川崎的高速動車組(CRH2)也使用ARCNET技術〔1〕。為此設計用于組建環形ARCNET網絡的網絡接口。
ARCNET(Auxiliary Resource Computer Network)是一種基于令牌傳遞(Token Passing)協議的現場總線。最初是由美國Datapoint公司在20世紀70年代末作為辦公自動化網絡發展起來的。該現場總線具有速度快、確定性、可擴展性和支持長距離傳輸等特點,非常適合過程實時控制。近年來被廣泛應用在各種自動化領域,是一種理想的現場總線技術〔1〕。
ARCNET是一個開放標準協議,1999年成為美國國家標準 ANSI/ATA-878.1〔1〕。從 OSI參考模型來看,ARCNET位于ISO/OSI 7層網絡體系中的數據鏈路層和物理層。單個ARCNET子網最多可有255個節點,支持點對點的定向消息和點對多點的廣播消息。ARCNET支持總線型、星型以及分布式星型拓撲結構。ARCNET傳輸速率為2.5 Mbit/s,傳輸介質有同軸電纜、雙絞線、光纖,使用光纖時的新型ARC?NET plus速率可達到100 Mbit/s。ARCNET采用令牌傳遞協議,任何節點都不能獨占網絡,不存在競爭問題,并且在傳遞時間上可預測,不存在網絡阻塞。內置16位CRC校驗、出錯重傳機制,由于數據鏈路層協議固化在控制器芯片內部,因此ARCNET不用軟件就能自動完成諸如錯誤檢測、流量控制以及網絡配置功能。
ARM作為嵌入式開發、廣泛采用的一類處理器,其家族成員包括ARM7,ARM9,ARM10,ARM11等。該設計采用的是ARM9系列微處理器。ARM9系列微處理器包含ARM920T和ARM922T 2種類型,是以ARM9TDMI為原型發展而來的,其中ARM920T內置8 KB指令和數據Cache,ARM922T內置18 KB的雙Cache。二者均內置全性能的內存管理單元(MMU)和高速AMBA總線接口。AMBA總線是一個開放標準,已成為SOC構建和IP庫開發的實際標準。AMBA先進的高性能總線AHB接口現已被所有新的ARM核支持,提供開發全綜合設計系統〔2〕。
ARM9系列微處理器在高性能和低功耗特性方面提供最佳性能,支持32位ARM指令集和16位Thumb指令集,采用5級整數流水線,提供1.1MIPS/MHz的哈弗結構,支持32位的高速AMBA總線接口。同時,提供全性能的MMU,支持Windows CE、Linux、Palm OS等多種嵌入式操作系統。該設計所采用的操作系統為源碼開放的嵌入式Linux操作系統。
ARCNET網絡接口硬件設計包括2個部分,分別是設計能夠實現操作系統運行的基本硬件電路和實現網絡接口功能的協議控制器電路。
2.1 基本硬件電路設計 基本硬件電路也就是人們常說的最小系統硬件電路。它的基本功能是運行操作系統,是網絡接口能夠工作的核心,實現電源供應、電路復位、網絡接口時鐘、程序的FLASH存儲與RAM運行及JTAG接口。設計電路如圖1所示。

2.1.1 電源模塊設計 整個網絡接口采用12 V變壓供電。由于ARM S3C2440,FLASH及SRAM等芯片需要采用3.3 V供電,ARM核需要1.25 V穩定電壓,其他外圍芯片需要采用5 V供電,所以網絡接口采用電壓轉換芯片LM2576實現12 V向5 V轉換,采用LM1117實現5 V向3.3 V轉換,采用MAX8860芯片實現3.3 V向1.25 V轉換。
2.1.2 復位電路設計 在網絡接口中,復位電路主要實現網絡接口的上電復位和網絡接口在運行時用戶的按鍵復位功能。復位電路可由簡單的RC電路構成,也可以使用其他相對復雜但功能更完善的電路。
網絡接口復位電路采用MAX811芯片實現網絡接口復位。MAX811是低功耗微處理器管理電路,用于在微處理器和數字電路供應中,提高網絡接口穩定性能。
2.1.3 時鐘電路設計 S3C2440微處理器可以由外部時鐘提供,也可以由外部振蕩器組成,根據OM〔3:2〕引腳來進行選擇。該網絡接口選擇OM〔3:2〕均接地的方式,即采用外部震蕩器提供時鐘。時鐘電路如圖2所示。圖中,X2為12 MHz晶振,C5、C6為15 pF電容。

2.1.4 JTAG接口電路 JTAG是Joint Test Action Group的簡稱,主要實現芯片內部測試與對網絡接口進行仿真、調試。JTAG是一種嵌入式調試技術,它在芯片內部封裝了專門的電路測試訪問口(TAP),通過專門的JTAG測試工具對內部節點進行測試。標準的JTAG接口是4線:TMS,TCK,TDI,TDO,分別為測試模式選擇、測試時鐘、測試數據輸入、測試數據輸出。JTAG還常用于系統編程ISP,如對FLASH器件進行編程等。
2.1.5 外圍FLASH及SRAM接口電路 FLASH存儲器是一種可在系統中進行電擦寫,掉電后信息不丟失的存儲器。它具有低功耗、大容量、擦寫速度快、可整片或分扇區在系統編程或擦除等特點,并且可由內部嵌入的算法完成對芯片的操作。網絡接口存儲芯片采用K9F1208(64 MB 8位數據線)FLASH芯片以及2片K4S561632C(32 MB)SDRAM。
2.2 協議控制器電路設計 協議控制器電路主要由數字溫度傳感器、RS485接口電路、ARCNET協議芯片電路、LED與按鍵等4部分組成。該電路的最終目標是為環形ARCNET組網提供網絡節點及實現溫度采集與控制。設計電路如圖3所示。

2.2.1 數字式溫度傳感器 采用DS18B20數字式溫度傳感器采集溫度。DS18B20數字溫度計提供9位(二進制)溫度讀數,顯示所采集的溫度。信息經過單線接口輸入DS18B20或從DS18B20輸出,因此從主機CPU到DS18B20僅需1條數據收發線及地線。DS18B20的電源可以由數據本身提供而不需要外部電源。由于每一個DS18B20在出廠時已經給定了唯一的序號,因此任意DS18B20可以存放在同一條單線總線上。該序列號允許在許多不同的地方放置溫度敏感器件。DS18B20的測量范圍從-55~+125℃,增量值為0.5℃,可在1 s(典型值)內把溫度變換成數字。
每一個DS18B20包括1個唯一的6位長的序號,該序號值存放在DS18B20ROM(只讀存儲器)中。開始8位是產品類型編碼(DS18B20編碼均為10H)。接著48位是每個器件唯一的序號。最后8位是前面56位的CRC碼。DS18B20還有2個8位貯存RAM,是用于存儲測得的溫度值的,編號為0和1號。1號存放溫度值的符號,如果溫度為負,則存儲值全為1,否則全為0。0號存放溫度值的補碼,LSB的“1”表示0.5 ℃。
2.2.2 RS485接口電路 RS485為半雙工平衡差分信號,對多站互聯是十分方便的。RS485標準允許并聯32臺接收器??偩€兩端接匹配電阻(100Ω左右),驅動器負載為54Ω。驅動器輸出電平在-1.5 V以下時為邏輯“1”,在+1.5 V以上時為邏輯“0”。接收器輸入電平在-0.2 V以下時為邏輯“1”,在+0.2 V以上時為邏輯“0”。RS485傳輸速率最高為10 Mbit/s,最大電纜長度為1 200 m〔3〕。
2.2.3 ARCNET協議芯片電路 該設計采用COM20020網絡控制協議芯片,芯片封裝了令牌傳遞ARCNET協議,支持微控制接口的自動檢測。芯片內含2 KB雙口RAM、最小邏輯與微控制器接口、軟件編程節點ID、電源診斷、CMOS,3.3 V供電。并支持配置協議,工作溫度在-40~85℃。該芯片由28腳封裝,支持多種微處理器(MCU)和收發接口,時鐘頻率為20 MHz。由于電路傳輸需要一定的驅動,故電路物理收發接口采用HYC9088芯片。COM20020芯片驅動電路如圖4所示。
2.2.4 LED與按鍵模塊 作為人機交互的主要部件LED與按鍵,可以方便地對當前設備溫度進行查看與設置。LED的主要功能是顯示當前溫度,而按鍵可實現溫度的本地設置。

上述硬件平臺的搭建,為軟件程序提供了可靠的運行平臺。為實現ARCNET網絡接口的基本通信功能,軟件設計主要包括操作系統的移植、設備驅動程序的開發及應用程序開發3部分。
3.1 操作系統移植 Linux為該設計使用的操作系統,需要對其進行移植。移植Linux的引導啟動流程如圖5所示。

引導加載程序是嵌入式系統加電后運行的第一段代碼。在嵌入系統中,由Boot Loader來完成整個系統的加載與啟動任務。在嵌入式系統中,系統復位與上電通常從固定地址啟動,而這個地址一般都存放Boot Loader啟動程序。Boot Loader就是在操作系統內核運行之前運行的一段小程序,可以初始化硬件設備、建立內存映射,將系統的軟硬件帶到一個系統內核啟動的合適狀態。
經過Boot Loader引導程序后,系統開始加載內核,然后啟動內核并初始化外設,最終運行應用程序,實現人機交互。
3.2 設備驅動程序 設計主要實現COM20020協議芯片的初始化并開發收發驅動程序、LED的顯示驅動程序以及溫度采集系統的驅動電路。
系統調用是操作系統內核與應用程序之間的接口,設備驅動程序是機器硬件與操作系統之間的接口。它的主要功能:對設備初始化和釋放;把數據從內核傳送到硬件并從硬件讀取數據;讀取應用程序傳送給設備文件的數據和回送應用程序請求的數據;檢測和處理程序出現的錯誤。
3.3 應用程序 在設計中,應用程序主要實現溫度采集算法與ARCNET網絡數據收發。根據底層驅動程序提供的接口,通過基本的主函數調用驅動接口函數,打開底層硬件設備,讀取溫度數據并存儲。通過打開網絡協議控制設備,進行ARCNET網絡中溫度數據和模擬開關信息的傳輸,并接收網絡下發過來的控制命令。通過上述步驟即完成了網絡接口基本應用程序的開發。
用ARM設計的ARCNET網絡接口,在實踐中完全通過驗證。可以很好地工作在各種復雜環境下,采集與調控環境溫度。作為環形ARCNET網絡中的中間節點,通過雙絞線接入網絡,實現了基本的數據通信,將溫度傳感器采集到的數據在網絡上傳輸。該設計可為我國列車網絡組網接口設計提供一定的技術參考。
〔1〕倪文波,王雪梅.高速列車網絡與控制技術〔M〕.成都:西南交通大學出版社,2008.
〔2〕范書瑞,趙燕飛,高鐵成.ARM微處理器與C語言開發應用〔M〕.北京:北京航空航天大學出版社,2008.
〔3〕張剛毅,彭喜源.MCS-51單片機應用設計〔M〕.哈爾濱:哈爾濱工業大學出版社,2004.