基于CAN網(wǎng)絡(luò )的整車(chē)授時(shí)系統設計
[摘 要]
對于裝備有多種控制系統和信息系統的車(chē)輛,整車(chē)必須有統一的時(shí)間系統才能保證各個(gè)子系統進(jìn)行協(xié)調的工作。本文闡述了一種基于CAN總線(xiàn)的整車(chē)授時(shí)方法,基于該方法設計了一個(gè)整車(chē)授時(shí)系統,并且通過(guò)對CAN網(wǎng)絡(luò )延時(shí)的分析,做出時(shí)間補償。
本授時(shí)系統采用軟硬件結合的方法,克服了純軟件和純硬件授時(shí)的不足。在不需要大量資金的條件下,可實(shí)現整車(chē)內部多控制系統的時(shí)鐘同步,它的成本遠比純硬件時(shí)統系統低,也比純軟件時(shí)統系統要可靠得多。
1 引 言
特種車(chē)輛,比如消防車(chē)、救護車(chē)甚至特種作戰車(chē)輛,在現代瞬息萬(wàn)變的社會(huì )中,對時(shí)間的統一性提出了極高的要求。比如裝有戰場(chǎng)通訊指揮系統,火力控制系統,地理信息及定位系統,駕駛員綜合信息系統的特種作戰車(chē)輛,需要眾多的車(chē)載系統之間統一協(xié)調地工作,必須要有嚴格統一的時(shí)間系統。
GPS/Glonass/北斗衛星授時(shí)功能正被越來(lái)越廣泛地應用于各種系統,比如指揮系統[1-2]、地震觀(guān)察系統中[3]。純硬件授時(shí)機,精度高,但是成本也高,小型化程度不夠,無(wú)法滿(mǎn)足車(chē)載多個(gè)控制系統和信息系統時(shí)間同步的要求。
2 系統設計
基于CAN網(wǎng)絡(luò )的整車(chē)授時(shí)系統能將主時(shí)鐘源事件信息,通過(guò)車(chē)載網(wǎng)絡(luò ),發(fā)送給其他的系統,以達到整車(chē)時(shí)間的同步性,如圖2-1所示。
圖2-1 整車(chē)多微機控制系統授時(shí)方式
2.1主時(shí)鐘源
主時(shí)鐘源采用硬件時(shí)鐘源,接受來(lái)自上一級的時(shí)鐘源信號。上級的時(shí)鐘信號包括衛星授時(shí),長(cháng)波電臺授時(shí)等,本系統采用GPS衛星授時(shí)。
圖2-2 主時(shí)鐘源硬件設計及原理圖
Garmin25LVS是Garmin公司的一款廉價(jià)且性能較好的導航型接收機。該接收機帶有標準格式的NMEA導航電文輸出(含有當前時(shí)間信號)和載波相位輸出。同時(shí)還輸出一個(gè)與GPS秒時(shí)間同步的高電平脈沖。微處理器采用飛思卡爾的8位單片機,該單片機帶有1個(gè)串行通訊口,1個(gè)CAN總線(xiàn)通訊口,2個(gè)通道16位輸入捕捉器,16K閃存。主時(shí)鐘源基本框圖如圖2-1所示。Garmin25LVS的串口信號經(jīng)過(guò)Max232芯片進(jìn)行電平轉換,輸入單片機,解析導航電文(包括年、月、日、時(shí)、分、秒信息)。脈沖信號經(jīng)過(guò)調理變成5V的脈沖信號,經(jīng)過(guò)輸入捕捉,在該時(shí)刻將時(shí)間信息發(fā)送到總線(xiàn)上,達到授時(shí)的目的。
Garmin25LVS支持3.6V-6V的寬電壓輸入,其TXD1/RXD1引腳是標準RS-232串口通信接口,因此必須轉成TTL或CMOS兼容的電平,見(jiàn)圖。
圖2-3 串口電平轉換電路原理
Garmin25LVS的PPS(Pulse Per Second)引腳為700mV的秒脈沖輸出,脈沖上升沿時(shí)間300納秒,持續時(shí)間默認為100毫秒,該脈沖的上升沿與GPS秒同步。因此GPS接收機時(shí)間精度為。由于Garmin25LVS的秒脈沖信號幅值只有0.7V,其上升沿無(wú)法被單片機捕捉到,因此必須將其調理成TTL/CMOS兼容的上升沿信號。采用LM224運算放大器,對PPS進(jìn)行跟隨,提高驅動(dòng)能力,然后設電壓滯回比較器,選取合適的電阻將正向和反向的域值電壓都設在0.35V附近,電路原理見(jiàn)圖2-4。
圖2-4 脈沖信號處理原理
高速CAN總線(xiàn)的驅動(dòng)芯片采用飛利浦的82C250,采用光柵隔離器件,抵抗CAN總線(xiàn)對數字信號的電磁干擾,總線(xiàn)通訊原理如圖。
圖2-5 CAN通訊接口原理
2.2時(shí)間信息的分發(fā)
時(shí)間信息通過(guò)控制器局域網(wǎng)總線(xiàn)(Local Area Network,CAN)采用廣播式方式以1Hz的頻率定期發(fā)送到總線(xiàn)。
整車(chē)授時(shí)的傳輸網(wǎng)絡(luò )基本結構如圖2-6所示。CAN總線(xiàn)物理硬件為帶屏蔽的雙絞銅線(xiàn)。時(shí)間消息以廣播形式發(fā)送到總線(xiàn)上,各控制系統都帶有相應的CAN接收控制器,獲取時(shí)間消息。
圖2-6 時(shí)間信息通過(guò)總線(xiàn)廣播分發(fā)
CAN總線(xiàn)的信號以幀為單位進(jìn)行發(fā)送[8]。時(shí)間信息是打包在數據幀里傳送的。數據幀包括幀頭,幀起始、仲裁域、控制域、數據域、校驗域、應答域和幀尾,如圖2-7。
圖2-7 CAN總線(xiàn)的數據幀
為減少時(shí)間延時(shí),縮短數據幀的長(cháng)度,包含時(shí)間消息的CAN數據幀格式采用的摩托羅拉前向編碼格式,共占用4字節,如表2-1。
表 2-1 時(shí)間信息編碼
微控制器控制的整車(chē)主時(shí)鐘源程序控制流程如圖2-8。先初始化串口和CAN通訊口和微機的輸入捕捉模塊,然后循環(huán)等待接收GPS電文并解析出時(shí)間信息。秒脈沖的上升沿由輸入比較器捕獲,產(chǎn)生中斷,中斷程序把時(shí)間發(fā)送到總線(xiàn)上。
圖2-8 主時(shí)鐘源軟件設計
3延時(shí)補償以及授時(shí)誤差分析
授時(shí)延時(shí)定義為主時(shí)鐘源開(kāi)始把當前時(shí)間消息發(fā)出到目標節點(diǎn)(各控制/信息系統)接收該消息并產(chǎn)生中斷之間的時(shí)間差。
3.1時(shí)間延遲模型
主時(shí)鐘源微控制器捕捉到秒脈沖產(chǎn)生中斷,CPU首先把時(shí)間消息放入CAN控制器緩存,緩存取得發(fā)送權力把消息通過(guò)驅動(dòng)電路發(fā)送到總線(xiàn),各車(chē)載的控制系統的CAN控制器接收完畢。在這個(gè)過(guò)程中,時(shí)間消息的接收發(fā)生延遲,延遲包括3個(gè)部份,如圖3-1所示。
圖3-1網(wǎng)絡(luò )授時(shí)延時(shí)模型
Jm是消息m排隊的時(shí)間,即消息開(kāi)始放入發(fā)送隊列到可以發(fā)送的時(shí)間差;Im是指由于仲裁和消息堵塞導致的時(shí)間延遲;Cm是數據在總線(xiàn)上的傳送時(shí)間。因此總的時(shí)間延遲Cm為:
(3.1)
本系統采用的CAN收發(fā)控制器具有多緩存結構;并且主時(shí)鐘源只發(fā)送一種幀信息——時(shí)間幀信息,因此消息排隊時(shí)間Jm 可以認為是一個(gè)由于指令操作產(chǎn)生的延時(shí)常數。
CAN是串行通訊的總線(xiàn)協(xié)議,即消息是按位逐位發(fā)送的,直到最后一位傳送完畢,該消息才完全傳送,產(chǎn)生中斷引起CPU響應。根據CAN總線(xiàn)的數據幀長(cháng)度,網(wǎng)絡(luò )傳輸延時(shí)可由下式來(lái)計算: (3.2)
仲裁和消息堵塞延時(shí)Im,包括兩個(gè)部分:上一個(gè)正在發(fā)送的消息占用的時(shí)間和優(yōu)先級比他高的消息的發(fā)送時(shí)間??捎肨indell,Audsley等人總結的模型迭代公式來(lái)求解[5-7]。如式(3.3)。
(3.3)
其中 是上個(gè)消息的發(fā)送時(shí)間,即堵塞的消息, 指優(yōu)先權比該消息高的信息集合,Tj是消息j的發(fā)送周期。
3.2授時(shí)延時(shí)估算
微控制器采用16MHz頻率的晶振,那么1個(gè)時(shí)鐘周期為1/8微秒,Jm延時(shí)包括2字節消息標識設置,若干數據緩存設置的操作。設時(shí)間消息數據長(cháng) 字節,那么共執行
次數據傳送操作,每次數據傳送操作花費1個(gè)時(shí)鐘周期[4],那么:
(3.4)
本系統充分考慮傳輸的時(shí)效性,時(shí)間消息幀在總線(xiàn)網(wǎng)絡(luò )中擁有最高權限,那么根據第2.2和3.1小節所述,式(3.3)中 是空集,時(shí)間消息的仲裁時(shí)間延時(shí)為零(即總能得馬上到發(fā)送權限),因此Im=Bm。在最壞情況下該值為網(wǎng)絡(luò )上具有最長(cháng)數據域的消息的發(fā)送時(shí)間:
(3.5)
位傳輸時(shí)間 取決于波特率,本系統總線(xiàn)波特率500K那么位傳輸時(shí)間2
評論