楊 超 張冬泉
(北京交通大學機械與電子控制工程學院,100044,北京∥第一作者,工程師)
自動檢票機(AGM),也稱作閘機,是自動售檢票系統(tǒng)(AFC)的重要組成部分,承擔者控制客流、提供客流基礎信息的任務,是AFC系統(tǒng)重要的現場設備。ARM(Advanced RISC Machines,精簡指令集機器)架構,是一個32位元精簡指令集(RISC)中央處理器架構,在許多嵌入式系統(tǒng)設計中被廣泛使用,因而在自動檢票機控制系統(tǒng)的設計中選擇了ARM內核的CPU作為微控制器(MCU)。本文在分析自動檢票機基本功能的基礎上,重點研究了基于ARM的自動檢票機的控制系統(tǒng)。
AGM是AFC系統(tǒng)的現場設備,設置于城市軌道交通車站的進出站口。乘客進出站時,AGM根據車票介質上存儲的信息完成對車票合法性檢查,統(tǒng)計進出站信息和客流信息,同時達到提高通過效率、降低運輸成本、減輕工作人員勞動強度、實現車站管理信息化等目的,最終實現提高城市軌道交通運行效率的目的[4]。AGM的硬件部分主要包括機械殼體、門禁機構、主控板、GPIO(數字量輸入輸出)單元、液晶顯示器、讀卡器等部分。AGM的內部結構如圖1所示。
圖1 AGM內部結構示意圖
目前,城市軌道交通的AFC系統(tǒng)已經實現了通過非接觸式IC卡進行自動檢票。AGM最主要的任務是判斷乘客票卡的合法性,開放或關閉閘門,以及回收票卡。需要回收的票卡指的是在車站臨時購買的乘車票卡而不是公交一卡通。
當乘客進站時,乘客只需刷卡進入,此時AGM不需要區(qū)分該卡是公交一卡通還是臨時購買的乘車票卡,只需要判斷票卡的合法性以及開放閘門,待乘客進入后關閉閘門進行下一次的操作。乘客進站流程如圖2所示。
圖2 乘客進站流程圖
當乘客出站時,持有公交一卡通的乘客只需要刷卡即可,AGM會自動判斷票卡的合法性,開放閘門,待乘客出去后關閉閘門進行下一次的操作;持有臨時乘車票卡的乘客,需要將票卡插入AGM,進行票卡合法性判斷并進行票卡回收的操作,若票有效,乘客才能順利出站。乘客出站流程如圖3所示。
圖3 乘客出站流程圖
當乘客持公交一卡通卡進站時,AGM只需要進行讀卡的相關操作;當乘客持車站購買的臨時乘車票卡出站時,AGM需要進行票卡合法性判斷并進行票卡回收的相關操作。本文研究的AGM的功能主要是針對票卡回收的相關操作。為了完成一次票卡回收的操作,AGM的控制系統(tǒng)需要完成以下幾項操作:
(1)傳感器信息檢測。為了檢測票卡的位置,在票卡行經的各個位置安裝了許多傳感器。主控系統(tǒng)通過從這些傳感器獲得的實時檢測信息,判斷票卡準確的位置信息。這也是控制系統(tǒng)做出各種決策的直接信息來源。
(2)電磁鐵的控制。整個系統(tǒng)安裝了數量眾多的電磁鐵,通過電磁鐵的動作效應可以控制票卡進入哪個票箱。
(3)步進電機控制。整個AGM安裝了3個步進電機(票卡搬送部分1個,票卡回收部分2個)。步進電機是整個AGM的動力來源,因而步進電機的控制對票卡的回收起著決定性的作用。
(4)液晶顯示。用于用戶提示信息的顯示,增強了系統(tǒng)的交互性和友好性。
(5)和上層服務器通信。位于車站的AGM與上層的服務器是相互聯(lián)通的:一方面,AGM把記錄的客流基本信息傳給上層服務器用于客流信息的統(tǒng)計、分析,最終為客流調度服務;另一方面,上層服務器將票卡的信息傳送給AGM,用于判斷乘客票卡的合法性。圖4為AGM控制系統(tǒng)的應用功能框圖。
各種功能的傳感器主要用來檢測票卡的位置、狀態(tài),以及票箱中票卡是否已滿??刂葡到y(tǒng)就是通過檢測這些傳感器的狀態(tài)來獲知外部信息。這部分信息大多為I/O量,CPU通過GPIO來獲取這部分信息。同時,CPU可以通過GPIO端口直接控制電磁鐵和步進電機,用于實現票卡的回收操作。系統(tǒng)的一些提示或者報警信息可以通過顯示器動態(tài)地告知乘客。可以采用TCP/IP協(xié)議與上層服務器之間進行通信,實現和網絡的互聯(lián)。
圖4 AGM控制系統(tǒng)的應用功能框圖
通過分析AGM控制系統(tǒng)的應用功能,可以明確控制系統(tǒng)需要提供的資源和完成的任務,便于系統(tǒng)方案設計。以51系列為代表的傳統(tǒng)單片機無論從資源還是運算能力上已經無法滿足AGM控制系統(tǒng)的功能要求,而工控機存在體積大,自身不提供直接的I/O端口,嵌入性較差等限制性因素,因此,選用S3C2440A作為AGM控制系統(tǒng)的微控制器。
S3C2440A是三星公司推出的一款32位的RISC處理器,主頻可達400MHz,資源豐富,可支持嵌入式操作系統(tǒng)如Windows CE。圖5所示為基于S3C2440設計的控制系統(tǒng)方案圖。
圖5 AGM控制系統(tǒng)方案設計
嵌入式系統(tǒng)可以根據系統(tǒng)的功能要求實現系統(tǒng)硬件功能的定制,將需要用到的資源從CPU中擴展出來,而隱藏不需要用到的資源,從而實現系統(tǒng)的最簡潔化。引出的端口主要有:①GPIO——傳感器信息的采集、步進電機的控制以及電磁鐵的驅動都需要用到大量的GPIO。GPIO是系統(tǒng)獲取外部信息的主要方式。②觸摸屏——用于提示信息和系統(tǒng)信息的顯示,增強系統(tǒng)的交互性。③以太網接口——AGM和上位機可以通過此端口實現互聯(lián)。④COM/JTAG/USB——系統(tǒng)調試用端口;⑤按鍵/蜂鳴器——可用于調試,也可用于交互。
引出的部分端口是考慮到了系統(tǒng)的調試。在調試好的系統(tǒng)上可以將此部分資源隱藏。至此,基于S3C2440A的嵌入式方案的硬件環(huán)境已經建立。
Windows CE是一個多任務、實時的嵌入式操作系統(tǒng),可以提高系統(tǒng)資源的利用效率。但是,Windows CE是一個保護型的操作系統(tǒng),不允許直接訪問硬件的物理地址。主控系統(tǒng)對外圍傳感器信息的采集、步進電機的控制、與上層服務器通信等均用到大量的GPIO的操作,因此,需要直接訪問CPU的物理地址?,F以步進電機的控制為例介紹在Windows CE系統(tǒng)環(huán)境下對GPIO的操作。
步進電機的控制通常需要3根線:使能信號線(EN)、方向信號線(DIR)和時鐘信號線(CLK);為了給出控制信號,還需要用到S3C2440A的GPIO端口。在 Windows CE系統(tǒng)環(huán)境下,為了完成GPIO的操作,首先需要將S3C24402440A的GPIO端口的物理地址塊映射成操作系統(tǒng)可以訪問的虛擬地址空間。如下所示:
函數VirtualAlloc用于在用戶的進程空間中為要映射的物理地址保存一塊虛擬地址空間。這塊空間的大小由sizeof(GPIO_RES)定義。如果虛擬地址空間申請成功,函數的返回值是虛擬地址空間的基地址,存儲在v_pGPIO_REGS中。
函數VirtualCopy用于將實際的物理地址對應給VirtualAlloc剛才保留的虛擬地址空間,以完成物理地址與虛擬地址空間的綁定。這里的操作完成了GPIO的物理地址塊GPIO_PHY_BASE與剛申請的虛擬地址空間v_pGPIO_REGS的綁定。函數的返回值是布爾量,表征了此次地址綁定是否成功,從而在Windows CE系統(tǒng)環(huán)境下就可以通過操作虛擬地址空間v_pGPIO_REGS來實現對硬件地址的操作。
用完的內存可通過函數VirtualFree將其釋放。用法如下:
Virtual(v_pGPIO_REGS,sizeof(GPIO_REGS),MEM_DECOMMIT)
完成了物理地址的動態(tài)綁定后,就可以通過訪問虛擬地址來給出步進電機的控制信號。例如步進電機的初始化就可以通過如下方式實現:
v_pGPIO_REGS->GPGCON_VIRTUAL=
(01<<06)|∥電機使能信號設置
(01<<10)|∥電機時鐘信號設置
(01<<12);∥電機方向信號設置
在Windows CE系統(tǒng)環(huán)境下對GPIO的操作均可以通過這種方式實現。
[1]寧斐,滑蓉,周子社.鐵路客運專線自動檢票機關鍵技術研究[J].鐵路信息系統(tǒng),2008,18(8):18.
[2]張彥.AFC技術及鐵路自動售檢票系統(tǒng)研究[J].中國鐵路,2009(3):50.
[3]Ampelas A.Automatic fare collection[C]∥ 2001IEEE Intelligent Transportation Systems Conference Proceedings.Oakland:IEEE,2001:1164.
[4]陳勇.地鐵自動售檢票系統(tǒng)[J].鐵道通信信號,2002(3):17.
[5]張冬泉.Windows CE實用開發(fā)技術[M].2版.北京:電子工業(yè)出版社,2008.
[6]Microsoft.Microsoft windows CE device driver kit[M].北京:北京希望電子出版社,2000.