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