摘 要:公共交通系統是未來大中型城市交通的主力,公交信息化建設勢在必行。進行了隨車控制器的硬件和軟件方案設計,采用了模塊化設計思想進行了主程序和子程序的設計。并針對汽車行駛工況復雜、惡劣環境的特點進行了系統抗干擾設計,具有十分現實的可操作意義。
關鍵詞:隨車控制器;設計;公交
0引言
隨車控制器系統是公交智能化調度系統的數據來源,也是智能調度系統調度指令的最終執行者。隨車控制器系統具有定位、自動報站、接收調度指令等基本功能。
1公交車輛隨車控制器的總體設計要求
隨車控制器是實現公交車輛調度的信息采集和信息發布終端,該公交隨車控制器終端的可靠性、實用性直接影響著整體的工作性能。
2公交車輛隨車控制器硬件電路的總體規劃
隨車控制器硬件電路設計,首先應該滿足系統的功能要求,在此基礎上運用先進的單片機芯片及外圍芯片,設計性能良好的集成電路。本系統硬件部分主要包含以下幾個部分:
2.1單片機系統
單片機系統可以說是整個系統的核心,其他的電路都可以看作是單片機電路的外圍電路。
(1)單片機型號的選擇。
選用Atmel公司的AT89S8252單片機作為隨車控制器的處理單元。它是一款高性價比的單片機,與工業標準的SOC52系列完全兼容。其主要性能特點如下:
與MCS-51產品兼容;8K的Flash存儲器,在線編程,可寫1000次;2K的EEPROM,可寫100,000次;2.7V-6.0V工作電壓;晶振:OHz-24MHz;三層可編程加密;256*8位內部RAM;
32個可編程I/O管腳;3個16位定時器/計數器;9個中斷源;全雙工UART串行通道;低功耗空閑和休眠節電模式;節電模式中斷喚醒;看門狗定時器;雙數據寄存器指針;多種封裝形式:40DIP. 44PLCC,44PQFP;掉電模式。
AT89LS8252是低功耗、8位CMOS工藝處理器,并具有8K在線可編程Flash存儲器。片內Flash可多次編程。AT89S8252是一個功能強大的處理器,可以為許多嵌入式應用提供高靈活性,高性價比的解決方案。
(2)看門狗和復位電路。
幾乎所有的單片機都需要復位電路,對復位電路的基本要求是:在單片機上電時能可靠復位,在下電時能防止程序亂飛導致EEPROM中的數據被修改;另外,單片機系統在工作時,由于干擾等各種因素的影響,有可能出現死機現象,導致單片機系統無法正常工作。為了克服這一現象,除了充分利用單片機本身的看門狗定時器外,還需外加看門狗電路。MA×TN公司推出的MA×813L剛好能滿足系統設計要求。MA×813L有雙列直插和貼片式兩種封裝形式。
第1腳為手動復位輸入,低電平有效;第2,3腳分別為電源和地;第4腳為電源故障輸入;第5腳為電源故障輸出;第6腳為看門狗輸入;第7腳為復位輸出;第4腳為看門狗輸出。
2.2單片機串口通訊
(1)單片機串口的應用特性。
AT89S8252單片機上有UART(通用異步接物發送)用于串行通信,發送時數據由T×D端送出,接收時數據由R×D端輸入,有兩個緩沖器SUBF,一個作為發送緩沖器,另一個作接受緩沖器,它是可編程的全雙工的串行口。短距離的通信可使用UART的TTL電平,使用驅動芯片MA×232可接成RS232C和通用微機進行通信。
SCON是串行口控制和狀態寄存器,其格式如下:
SMO, SM1:串行口工作方式控制位;SM2:多機通信控制位;SM2=1,只有接收到第9位(RB8)為1, RI才置位;SM2=0,接收到字符RI就置位;REN:串行口接收允許位;REN=1,允許串行口接收:REN= 0,禁止串行口接收;TBS:方式2和方式3時,為發送的第9為數據,也可以作奇偶校驗位;RB8:方式2和方式3時,為接收到的第9位數據;方式1時,為接收到的停止位;TI:發送中斷標志。由硬件置位,必須由軟件清0;RI:接收終端標志。由硬件置位,必須由軟件清0。
(2)串口通信接口。
由于該模塊是采用6V電源供電,因此須對電壓進行處理,系統的供電24V,因此要進行電壓轉換。
根據模塊的特性及波特率要求,我們很容易就寫出單片機串口通信的初始化程序:
TMOD=0×20
THl=O×EB;// if ×tal=11.059M TH1=O×EB
// if ×tal=12M THl=0×E6
PCON=0×00
SCON=0×50
TR=I
EA=1
ES=1
2.3直流穩壓電源的設計
車載電源是+24V直流電源,單片機系統大部分芯片要求十SV直流電源供電,無線通訊模塊要求+6V直流電源供電。這就要求將車載電源穩定可靠地轉換為能夠滿足單片機系統要求的直流穩壓電源。
車載+24V降為+SV的電路圖如圖7所示:圖中的BD1是續流二極管,起到保護作用,防止變壓成+5V的電源帶有電感性負載,瞬時產生反向電動勢,將三極管擊穿。
2.4隨車控制器的信號采集
(1)車速和里程信號的采集
車速和里程信號是系統重要的信號,尤其是車輛里程,對于在調度中心精確顯示出車輛的位置有重要的影響。
霍爾式轉速傳感器簡單、經濟,抗干擾能力強,適合車載系統使用。
霍爾元件的輸出信號再經過放大器放大、電壓比較器整理,就可以滿足單片機系統的要求了。
(2)開關門信號和站點的采集。
公交車輛在行駛過程中規范其操作,即只有進站后方可以打開上車門。隨車控制器要與門控電路相連,使得當車門狀態發生變化時,車載終端可以察覺到這種變化,并記錄采集的次數。這樣可以監測公交車在行使過程中是否開關門、是否到站未停車、是否飛車過站等。
3公交車輛隨車控制器的軟件設計
在隨車控制器硬件設計完成之后,必須設計完善的程序才能夠實現硬件電路的功能。
3.1系統軟件的編程語言的選擇
用來開發51系列單片機的編程語言,常用的有三種:匯編語言,C語言,嵌入式操作系統。
采用C語言對8051系列單片機進行開發相對于匯編語言和嵌入式實時操作系統具有一定優勢,特別是控制執行機構的硬件簡單,不必編寫太多底層函數;控制程序也不復雜,不必擔心占用大量系統運行時間。因此,單片機程序采用了C語言編制。
3.2系統軟件的主程序的編制
本系統的軟件設計是按如下步驟進行的:
(1)分析問題:明確系統所要解決的問題;
(2)確定算法:根據提出的問題和指令系統的特點,決定系統程序的算法,算法是程序設計的依據,它決定了程序的正確性;
(3)制定程序流程圖:根據所選擇的算法,制定出系統運算的步驟和順序,它運算過程畫成程序的流程圖;
(4)根據流程圖編寫程序;
(5)程序調試:使用開發工具和開發調試軟件,對所設計的程序進行調試,檢查和修改程序中的錯誤的地方,使程序能正常運行;
(6)程序優化:通過程序優化,可以縮短程序的長度,加快運算速度和節省數據存儲單元。在程序設計中經常使用循環程序和函數或子程序的形式來縮短程序,通過改進算法來節省工作單元和減少程序執行的時間;
(7)程序寫入片內:模塊化編程是一種軟件設計方法,各個模塊程序可以分別編寫、編譯和調試,最后將所有模塊一起連接調試。
本程序主要完成的任務有系統自檢、初始化、信號采集、模塊通訊等功能,其流程如圖10所示。源程序數據量較大,不在這里給出。
3公交車輛隨車控制器的抗干擾設計
由于汽車在運行過程中工況復雜,工作環境惡劣,CPU不僅要承受不良路面所引起的震動和沖擊,而且要承受汽車內部電器系統和外界高壓電場的電磁干擾。因此,系統在設計過程中在軟件和硬件方面都要采取一系列的抗干擾措施,以最大限度消除干擾的影響,保證系統的正常運行。
4.1系統的硬件抗干擾設計
系統將從軟硬件兩方面采取措施,綜合防止干擾對單片機系統工作的影響。硬件方面主要是切斷來自傳輸通道和電源線的干擾。
硬件抗干擾設計的基本原則是:抑制干擾源,切斷干擾傳播路徑,提高干擾敏感器件的抗干擾性能。
(1)抗電源干擾信號。
外部干擾信號很可能通過單片機系統的電源線竄入單片機系統中。為此,在每個芯片的電源線和地線之間都用一個大電容和小電容連接。大電容可以濾掉低頻波,小電容可以濾掉高頻波,這樣一來,進入芯片的電源線夾雜的干擾信號就大大減少了。
(2)抗傳輸通道干擾信號。
傳輸通道是單片機系統輸入輸出的橋梁,也是干擾信號侵入單片機系統的重要途徑,在輸入和輸出通道上采用光電隔離器來進行信息傳輸是很有好處的,它將單片機系統與各種傳感器、開關、執行機構從電氣上隔離開來,很大一部分干擾將被阻擋。本系統中采用光電隔離器TLP5210。
4.2系統的軟件抗干擾設計
(1)CPU抗干擾措施。
如何發現單片機受到干擾,如何攔截失去控制的程序流向,如何使系統的損失減小,以及如何恢復系統的正常運行,這些就是CPU抗干擾需要解決的問題。可以下幾種方法:
①人工復位。
對于失控的CPU,最簡單的方法是使其復位,程序自動從OOOOH開始執行。為此,只要在單片機的RESET端加上一個高電平信號。本系統設計一個模仿人工監測的“程序運行監測器”,俗稱“看門狗”,其本身能獨立工作,基本上不依賴CPU,CPU只在一個固定的時間間隔內與之打一次交道,表明系統目前尚屬正常,當CPU落入死循環后,能及時地發現并使整個系統復位。
②掉電保護。
電網瞬間斷電或電壓突然下降將使微機系統陷入混亂狀態,而電網電壓恢復正常后,微機系統難以恢復正常。對付這一類事故的有效方法就是掉電保護。掉電信號由硬件電路檢測到,并加到單片機的外部中斷輸入端。軟件的中斷將掉電中斷規定為高級中斷,使系統及時對掉電做出反應。
(2)指令冗余。
所謂指令冗余,就是在一些關鍵的地方人為地插入一些單字節的空操作指令(NOP ),當程序“跑飛”到某條單字節指令上時,就不會發生將操作數當成指令來執行的錯誤。對于本系統使用的MCS-S1單片機來說,所有的指令都不會超過3個字節,因此在某條指令前面插入兩條NOP指令,則該條指令就不會被前面沖下來的失控程序拆散,而會得到完整的執行,從而使程序重新納入正常軌道。本系統在設計軟件時在一些對程序的流向起關鍵作用的指令前面插入兩條 NOP指令。
(3)軟件陷阱。
采用“指令冗余”使“跑飛”的程序恢復正常是有條件的。首先“跑飛”的程序必須落到程序區,其次必須執行到所設置的冗余指令。如果“跑飛”的程序落到非程序區(如EPROM中未用完的空間或某些表格等),則“指令冗余”措施就不能使“跑飛”的程序恢復正常了。這是需要采用“軟件陷阱”,“軟件陷阱”是一條引導指令,強行將捕獲的程序引向一個指定的地址,在那里有一段專門處理錯誤的程序。
(4)通訊協議。
SA68D21是自帶CRC校驗碼等錯誤監測手段的,并且通訊協議規定了數據包的格式,如果有不符合的地方,就拒絕接收數據包的內容,這就很大程度上降低了外界的干擾。
參考文獻
[1]周江評.中國城市交通規劃的歷史問題和對策初探[J].城市交通,2006,4(3) :33~36
[2]劉瑜,張晶等.地理信息系統一原理、方法和應用[M].北京:科學出版社,2005
[3]徐紹銼,張華海,楊志強等.GPS測量原理及應用[M].武漢:武漢大學出版社,2006
[4]王志綱.GPS/DR組合導航系統在車輛定位中的應用[M].武漢大學學報,2004, 29 (12) :97~98
[5]孫泰屹,丁衛東,朱曉虹等.適用于公交車輛的定位技術研究[J].運營與管理,2004, 39 (6):62~64
[6]黃惠,邊馥荃.智能公交系統中的關鍵技術及其實現[J].武漢大學學報(信息科學版)2006,31(8):35~39