嵌入式開發:車載軟件無線電設計與應用
最近幾年,無線應用已經有了快速而且廣泛的發展。毫無疑問,無線設備給我們的生活和工作帶來了極大的便利,比如,手機使我們能夠隨時隨地地進行對話,大大地提高了溝通的效率。與此相對應,越來越多的無線技術被創新性地集成在汽車應用中,使駕駛也成為了一種舒適生活的體驗。下表列舉了目前常見的汽車無線應用。
這些還沒有包括紅外無線應用、遙控鑰匙等,加上將來肯定會集成到車內的無線互聯網絡和4G通訊網絡,汽車相關的無線系統會涵蓋一個相當大的范疇。然而無線應用不僅要適用于相關的頻率,還要滿足規定的調制算法。所以現有的車載無線應用都是采用單獨的軟硬件模塊來實現的。比如收音機,普遍的解決方案是利用一個收音機模塊進行收音解調,然后通過專門的通訊協議(比如I2C)和主處理器交互,并顯示在人機界面上。
獨立的軟硬件模塊通常意味著簡潔的軟件設計和較低的硬件成本。不過它也有它的弱點:硬件模塊的更改通常意味著比較大的系統改變。比如收音機要加上RDS的功能,一般要重新選擇新的收音機模塊,重新設計系統接口以適應新的收音機模塊,重新設計軟件來容納RDS功能等。
車載無線應用涉及眾多的獨立硬件模塊和快速發展的新技術,同時變更硬件模塊和修改軟件模塊可能會導致滯后的上市時間和較高的設計成本。軟件無線電是一個蓬勃發展的領域,以下本文將就在車載系統中引入軟件無線電模塊展開討論。
軟件無線電簡介
傳統的無線電應用都是依靠模擬電路來實現的。軟件無線電的目的就是把無線電領域的硬件問題變成軟件問題,其基本思想就是用軟件解調接收到的電磁波和用軟件控制發射的電磁波。軟件無線電的基本框架如下圖。
從框圖中可以看到,模數/數模轉換器是聯系連續的模擬信號和分立的數字信號的橋梁,而軟件可以控制的是數字信號。應用軟件代碼高效分析和合理控制數字信號,軟件無線電原則上可以實現傳統無線電的所有應用,并且具有傳統無線電設備所沒有的靈活性——軟件代碼實際上可以根據用戶的需求實時調整。也就是說,使用同一塊硬件,軟件無線電軟件可以完成傳統無線電需要多塊硬件才能完成的任務,比如同時接收FM信號和電視信號。
車載軟件無線電
現在是考慮用軟件無線電來代替汽車內傳統無線電應用的時候了。要實現這個方案,首先需要設計一個通用的軟件無線電模塊。這個模塊應該包含示意圖中的模塊,而且還要有較好的靈活性,最后還必須有和外部設備通訊的高速接口。下圖給出了一個簡單的示意例子。
其中,DAC是數模轉換器,ADC是模數轉換器,BUS是可編程接口。
其次,看一看作為可編程單元的FPGA.當主控單元通過可編程接口配置好FPGA之后,FPGA就會按照我們預先設計的程序進行工作。在軟件無線電領域,以接收為例,FPGA完成的任務包括按照主控單元指定的頻率段把ADC數據轉化為基頻段數據,即所謂數字化下行轉換。這個轉換過去是非常消耗系統資源的,隨著硬件處理能力的提高和軟件算法的更新,無線電領域的上下行轉換目前基本上可以實時完成。賽靈思和Altera都提供高性能的FPGA,它們完全可以勝任上述任務。
再其次,數字化下行轉換后的數據會通過可編程接口傳輸給主控單元。這個數據的流量會根據應用和數字化下行轉換算法的不同有較大的變化。典型的數據率是每秒數十兆字節,這個速度可以適應目前車內常用的無線系統,而滿足這個數據率的通用接口可以選:
一般地,USB總線是一個很好的選擇:簡便而易得。
評論