實踐經驗分享嵌入式系統開發
模塊化設計的一個重大優勢就是能夠針對某些需求使用商用現成的模塊。商用現成(COTS)模塊讓我們能夠以更快的速度開發系統,因為借助 COTS,我們能夠把我們的工作重點放在項目從我們的專業能力產生的增值中獲益最大的部分上。
系統電源架構是一個需要縝密思考的的設計方面。許多嵌入式系統會要求隔離 AC/DC 或 DC/DC 轉換器來確保嵌入式系統的故障不會擴散。圖 2 顯示的是電源架構的示例。來自該模塊的輸出軌需要二級調整來為處理內核和轉換裝置提供電壓。我們必須仔細防范這些階段發生嚴重的開關損耗和效率下降。因為效率降低意味著系統熱耗散增大,如果不正確解決就會影響單元的可靠性。
我們必須仔細了解使用的線性調整器的行為以及在電源線上進行進一步濾波的要求。這一要求的原因是 FPGA 和處理器等器件的開關頻率遠遠高于線性調整器的控制環路所能應對的水平。隨著噪聲頻率提高,線性調整器的噪聲抑制能力下降,導致需要采用額外的濾波和去藕技術。如果不了解這一關系,會造成混合信號設備出現問題。
另一個重要的考慮因素是時鐘和復位架構,尤其是在有多個需要同步的開發板的情況下。在架構層面我們必須考慮時鐘分配網絡:我們是否在跨多個開發板扇出單個振蕩器,或是使用多個頻率相同的振蕩器?為確保時鐘分配的穩健可靠性,我們必須考慮:
振蕩器啟動時間。我們必須確保在整個時間周期內激活復位(如果需要)。
振蕩器歪斜。如果我們要在跨多個開發板扇出振蕩器,時序是否至關重要?如果是,我們需要考慮線路卡上的歪斜(連接器引起的)和緩沖器自身引起的歪斜。
振蕩器抖動。如果我們在開發混合信號設計,我們需要確保使用低抖動時鐘源,因為抖動的增大會降低混合信號轉換器的信噪比。在我們使用千兆位級串行鏈路時情況也是一樣,因為我們需要使用低抖動時鐘源在鏈路上取得良好的誤碼率。
我們也必須注意復位架構,確保只在需要的地方使用復位。例如基于 SRAM 的 FPGA 一般不需要復位。
如果我們在使用復位的異步激活,我們需要確保移除它不會導致亞穩態問題。
清晰定義接口
內外部接口的正式文檔在機械、物理和電氣層面為各個接口提供清晰的定義,以及協議和控制流。這些正式文檔也往往被稱為接口控制文檔 (ICD)。當然最好是盡量使用標準通信接口。
接口定義最重要的一個方面是外部接口的“連接化”。這個過程考慮了所需連接器的引腳分配,連接器引腳的額定功率以及所要求的插拔次數,以及任何對屏蔽的要求。
在我們為我們的系統考慮連接器類型的時候,我們應確保不會因為在子系統中使用相同類型連接器而造成不利的交叉連接。通過使用不同類型連接器或采用不同的連接器鍵位(如果支持),我們就能夠避免交叉連接的可能性。
連接化是我們開始使用之前確定的預算要求的首個方面之一。特別是我們可以使用串擾預算來指引我們定義引腳分配。圖 3 所示的例子說明了這一流程的重要性。重新安排引腳分配,將接地基準電壓 (GND) 引腳布局在信號 1 和信號 2 之間,可以降低互感以及由此引發的串擾。

圖 3:連接化是接口定義最重要的特征之一。
接口控制文檔 (ICD) 必須對系統接地進行定義,尤其是在項目要求外部 EMC 的時候。在這種情況下,我們必須小心避免讓有噪聲的信號地產生輻射。
工程師和項目經理掌握著一系列策略,以確保他們交付的嵌入式系統能夠滿足質量、成本和調度要求。不過當項目遇到困難時,我們可以確信在項目不發生重大變化的情況下其此前的性能是其未來性能的良好提示。
評論