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