基于DSP的車載導(dǎo)航系統(tǒng)硬件電路設(shè)計與實現(xiàn)
在車載導(dǎo)航系統(tǒng)電路設(shè)計中采用了CAN總線設(shè)計。CAN總線獨立控制器采用SJA1000T,使用16 MHz晶振作為時鐘輸入,可通過軟件配置ID號和數(shù)據(jù)傳輸波特率,最大速率為1 Mbit·s-1。其總線控制器使用數(shù)據(jù)地址復(fù)用總線,經(jīng)FPGA轉(zhuǎn)換后與DSPEMIF總線連接。CAN總線控制器信號采用TTL電平(5 V),與信號為3.3 V電平的FPGA之間需使用SN74LVC4245作電平轉(zhuǎn)換。CAN總線接收器采用Philips Semiconductors公司PCA82C250。其總線控制器與收發(fā)器之間的數(shù)據(jù)傳輸信號采用光耦進(jìn)行隔離。CAN總線接口電路如圖2所示。
2.4 FPGA設(shè)計
車載導(dǎo)航系統(tǒng)電路采用FPGA處理模塊上控制邏輯、各輸入信號的計數(shù)及實現(xiàn)串行接口通訊協(xié)議。FPGA對輸入信號進(jìn)行計數(shù),并對標(biāo)頻信號分頻產(chǎn)生中斷5信號,產(chǎn)生中斷5信號的同時對各計數(shù)器值進(jìn)行鎖存。DSP可通過EMIF總線訪問FPGA的內(nèi)部資源,地址空間占用EMIF總線的CE2。FPGA的加載模式為主控串行模式(Master Serial Mode),F(xiàn)PGA功能框圖如圖3所示。FPGA設(shè)計包括加速度計信號計數(shù)器設(shè)計、陀螺信號計數(shù)器設(shè)計、里程計信號計數(shù)器設(shè)計、陀螺合頻計數(shù)器設(shè)計、標(biāo)頻分頻器設(shè)計、狀態(tài)檢測、故障檢測信號和串行通訊接口設(shè)計。
加速度計信號輸入為可逆脈沖,每個通道加速度計輸入包括3路信號,分別是+A、-A和GND,按照設(shè)計要求,+A信號上有脈沖時計數(shù)值增加,-A信號上有脈沖時計數(shù)值減少,當(dāng)頻標(biāo)分頻中斷產(chǎn)生時,將計數(shù)結(jié)果存入鎖存器內(nèi)。在FPGA中設(shè)計了16位的計數(shù)器,上電復(fù)位計數(shù)器為0,+A信號上有脈沖時計數(shù)值加1,-A信號上有脈沖時計數(shù)值減1,當(dāng)頻標(biāo)分頻中斷產(chǎn)生時,將計數(shù)結(jié)果存入鎖存器內(nèi),DSP可通過EMIF訪問鎖存器得到加速度計信號計數(shù)器的結(jié)果。
陀螺信號輸入形式為正交編碼信號,每個通道陀螺信號輸入包括3路信號,分別是A、B和DGND,當(dāng)A相超前B相90°時計數(shù)值增加,當(dāng)A相落后B相90°時計數(shù)值減少。在設(shè)計時輸入信號先經(jīng)過鑒相電路,識別A路和B路信號的相位先后,并產(chǎn)生兩路4倍頻的可逆脈沖信號,然后對可逆脈沖進(jìn)行計數(shù),當(dāng)標(biāo)頻信號中斷產(chǎn)生時,將計數(shù)結(jié)果存入鎖存器內(nèi)。
里程計信號包括兩路計數(shù)輸入和一路行車狀態(tài)信號輸入,計數(shù)輸入每路使用一個16 bit計數(shù)器,當(dāng)中斷產(chǎn)生時將計數(shù)器數(shù)值存入鎖存器;行車狀態(tài)信號(STATE)上電初始為無效狀態(tài),用戶通過命令設(shè)置STATE狀態(tài)是否有效。其STATE信號處于有效狀態(tài)時,STATE為1,里程計計數(shù)器遞增計數(shù);若STATE為0時,里程計計數(shù)器遞減計數(shù);而當(dāng)STATE信號處于無效狀態(tài)時,里程計計數(shù)器遞增計數(shù)。
在FPGA中設(shè)計了16位計數(shù)器,上電復(fù)位計數(shù)器為0,計數(shù)器的值均增加,而計數(shù)器均加1,當(dāng)頻標(biāo)分頻中斷產(chǎn)生時,將計數(shù)結(jié)果存入鎖存器內(nèi)。DSP可通過EMIF訪問鎖存器得到陀螺合頻計數(shù)器的結(jié)果。
標(biāo)頻分頻器用來將標(biāo)頻信號分頻,產(chǎn)生鎖存FPGA內(nèi)加速度計數(shù)器、陀螺計數(shù)器、里程計計數(shù)器的計數(shù)值以及狀態(tài)檢測信號的狀態(tài)中斷信號。在FPGA中標(biāo)頻分頻器由一個預(yù)定標(biāo)器和一個計數(shù)器組成,可由軟件編程設(shè)置分頻,DSP通過EMIF總線向預(yù)定標(biāo)器寫入需分頻的數(shù)值,計數(shù)器記錄頻標(biāo)脈沖的個數(shù),計數(shù)至定標(biāo)值時計數(shù)器輸出并清零,而計數(shù)器輸出至DSP的中斷,同時鎖存FPGA內(nèi)加速度計數(shù)器、陀螺計數(shù)器、里程計計數(shù)器的計數(shù)值以及狀態(tài)檢測信號的狀態(tài)。
狀態(tài)檢測信號為開關(guān)量信號,狀態(tài)存放在一個地址中,每一位代表一路的狀態(tài)。在FPGA中設(shè)計一個16位的寄存器,存放行車狀態(tài)、高壓檢測信號狀態(tài)、機抖檢測信號狀態(tài)及跳模檢測信號狀態(tài),并在中斷時將信號鎖存到鎖存器中。
故障檢測信號是通過一個地址寫入故障檢測向量,根據(jù)故障檢測向量每一位具體是0或1,由可編程邏輯器件將故障檢測向量自動設(shè)置輸出引腳。在FPGA中設(shè)置一個8位的存儲器,用于存放故障檢測向量,信號經(jīng)驅(qū)動后輸出。
FPGA內(nèi)部設(shè)計了串行協(xié)議模塊,經(jīng)外接電路組成RS232和RS422串行接口。集成協(xié)議芯片參照ST16C2552進(jìn)行設(shè)計,對其MODEM控制等功能進(jìn)行了裁減。而串行接口工作波特率也均可設(shè)置。
3 結(jié)束語
文中介紹了基于DSP的車載導(dǎo)航系統(tǒng),給出了硬件電路設(shè)計。其具有結(jié)構(gòu)簡單、可靠性高、維護(hù)方便,能提高系統(tǒng)整體性能和性價比,且有較好的繼承性等特點。實踐證明該硬件電路可靠,為車載導(dǎo)航領(lǐng)域的硬件設(shè)計提供了參考。
評論