車輛模擬駕駛訓(xùn)練系統(tǒng)動(dòng)感系統(tǒng)設(shè)計(jì)
4.1 HMR3000與MCU的通信協(xié)議
HMR3000的串行通信是根據(jù)NMEA0183標(biāo)準(zhǔn)制定的簡(jiǎn)單的ASCⅡ協(xié)議,可以在單片機(jī)系統(tǒng)中使用RS-232或RS-485接口電路。ASCⅡ碼的傳輸和接收使用1位起始位、8位數(shù)據(jù)位、無(wú)奇偶校驗(yàn)位和I位停止位,每個(gè)碼有10位。數(shù)據(jù)傳輸率可選擇l200 bit/s、2 400 bit/s、4 800 bit/s、9 600 bit/s、19 200bit/s、38 400 bit/s。
4.2 MCU接收HMR3000的數(shù)據(jù)
啟動(dòng)HMR3000后,設(shè)定好HMR3000的數(shù)據(jù)單位、進(jìn)制及其數(shù)據(jù)采集速率,每次數(shù)據(jù)采集后HMR3000自動(dòng)向MCU發(fā)送數(shù)據(jù)。由于它采用NMEA0183協(xié)議標(biāo)準(zhǔn)的HPR格式即“$PTNTHPR,x..x,a,x..x,a,x..x,a*hh”格式輸出,此格式中不僅含有效數(shù)據(jù)“x..x”和其狀態(tài)“a”,還包含有‘$’、‘P’、‘T’、‘*’、‘h’等相關(guān)格式字符,因此在程序中要加以區(qū)分。動(dòng)感系統(tǒng)中將字符‘$’作為一組有效數(shù)據(jù)傳輸?shù)拈_始,將字符‘*’作為一組有效數(shù)據(jù)傳輸?shù)慕Y(jié)束,并通過(guò)計(jì)算接收逗號(hào)‘,’的個(gè)數(shù)判斷有效數(shù)據(jù)的開始。MCU接收HMR3000的數(shù)據(jù)流程如圖4所示。
4.3 nRF905與MCU的通信協(xié)議
nRF905與MCU之間的通信采用SPI通信協(xié)議,使用2條控制信號(hào)線CSN、SCK和2條數(shù)據(jù)信號(hào)線MOSI、MISO進(jìn)行通信。CSN用來(lái)控制外圍設(shè)備的選通(低電平有效),SCK提供同步時(shí)鐘,MOSI、MISO分別為主從設(shè)備的輸入/輸出線。在SPI通信過(guò)程中,主從設(shè)備均在時(shí)鐘的下降沿從各自的輸出線輸出1位數(shù)據(jù),在時(shí)鐘的上升沿從各自的輸入線讀入l位數(shù)據(jù)。
4.4 nRF905發(fā)送和接收數(shù)據(jù)
nRF905發(fā)送或接收數(shù)據(jù)時(shí)必須嚴(yán)格遵守發(fā)送或接收時(shí)序,否則將導(dǎo)致發(fā)送或接收失敗。
4.4.1 發(fā)送數(shù)據(jù)
nRF905的發(fā)送時(shí)序如圖5所示,其中.TA-TB是nRF905的命令字寄存器、匹配地址寄存器和發(fā)送數(shù)據(jù)寄存器編程時(shí)間;TD-Tl是發(fā)送啟動(dòng)脈沖,至少為10μs;T1-T2是nRF905的自動(dòng)編碼,至少為650 μs;T2-T3是自動(dòng)發(fā)送數(shù)據(jù);T3是發(fā)送結(jié)束時(shí)DR置高電平,表示發(fā)送結(jié)束。具體步驟如下:
(1)給nRF905上電后,MCU將TX_EN置為高電平,將TRX_CE置為低電平,使nRF905進(jìn)入發(fā)送模式;
(2)MCU通過(guò)SPI接口按照SPI通信協(xié)議向nRF905寫命令字、匹配地址和將要發(fā)送的數(shù)據(jù);
(3)使TRX_CE產(chǎn)生1個(gè)至少10 μs的發(fā)送脈沖;
(4)nRF905接到發(fā)送脈沖后自動(dòng)編碼、自動(dòng)發(fā)送。如果nRF905命令字寄存器中的AUTO_RE-TRAN位被設(shè)置為高電平,則nRF905不斷重發(fā),直到TRX_CE被置高電平;
(5)nRF905發(fā)送數(shù)據(jù)后,DR自動(dòng)置高電平。MCU可以通過(guò)DR判斷發(fā)送完畢與否。以便發(fā)送下一組數(shù)據(jù)。
4.4.2 接收數(shù)據(jù)
nRF905接收時(shí)序如圖6所示,具體步驟如下:
(1)給nRF905上電后,MCU通過(guò)將TX_EN置低電平和TRX_CE置高電平,使nRF905進(jìn)入接收模式(圖6中的TA時(shí)刻);
(2)650μs后,nRF905開始檢測(cè)有無(wú)發(fā)送的數(shù)據(jù)(圖6中的T0時(shí)刻);
(3)當(dāng)nRF905探測(cè)到有接收頻率的載波時(shí),將CD置高電平(圖6中的Tl時(shí)刻);
(4)當(dāng)nRF905接收完有效匹配地址后,將AM置高電平(圖6中的T2時(shí)刻);
(5)當(dāng)nRF905接收完有效數(shù)據(jù)且CRC檢驗(yàn)正確后,將DR置高電平(圖6中的T3時(shí)刻);
(6)MCU在DR變高電平后可以通過(guò)SPI讀取nRF905接收的數(shù)據(jù)。
4.5 動(dòng)感控制部分的編程
根據(jù)硬件電路的連接,可以利用外部中斷0服務(wù)程序?qū)崿F(xiàn)動(dòng)感的實(shí)時(shí)控制,這樣,MCU在DR變成高電平后即可控制動(dòng)感平臺(tái)動(dòng)作,提高了實(shí)效性。程序流程如圖7所示。
5 結(jié)束語(yǔ)
據(jù)考證,國(guó)內(nèi)現(xiàn)有的車輛模擬駕駛訓(xùn)練系統(tǒng)均未安裝動(dòng)感系統(tǒng)。車輛模擬駕駛動(dòng)感系統(tǒng)具有廣闊的發(fā)展前景。本文為該系統(tǒng)的設(shè)計(jì)提供了切實(shí)可行、安全可靠的參考設(shè)計(jì)方案。
評(píng)論