嵌入式系統(tǒng)經(jīng)驗(yàn)傳承,大佬教你嵌入式系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn) · 下
嵌入式系統(tǒng)的開(kāi)發(fā)是目前的熱門領(lǐng)域,對(duì)于嵌入式系統(tǒng)工程師的需要,也在不斷增長(zhǎng)。在上篇嵌入式系統(tǒng)相關(guān)文章中,小編對(duì)嵌入式系統(tǒng)開(kāi)發(fā)的部分秘訣有所傳授。為讓大家更好的開(kāi)發(fā)嵌入式系統(tǒng),本文將對(duì)嵌入式系統(tǒng)開(kāi)發(fā)秘訣的余下部分予以介紹。如果你對(duì)本文內(nèi)容具有興趣,不妨繼續(xù)往下閱讀哦。
一、創(chuàng)建架構(gòu)
理解嵌入式系統(tǒng)要求的行為后,我們就需要為解決方案創(chuàng)建一個(gè)架構(gòu)。該架構(gòu)將由分組成功能塊的需求構(gòu)成。例如,如果嵌入式系統(tǒng)必須處理模擬輸入或輸出,架構(gòu)就將包含模擬 I/O 模塊。其它模塊可能會(huì)更加明顯,比如電源調(diào)節(jié)、時(shí)鐘和復(fù)位生成。
該架構(gòu)不應(yīng)僅限于硬件(電氣)解決方案,還應(yīng)包含 FPGA/SoC 及相關(guān)軟件的架構(gòu)。當(dāng)然,模塊化設(shè)計(jì)的關(guān)鍵是針對(duì)模塊及功能行為的良好接口文檔編制。
該架構(gòu)的一個(gè)關(guān)鍵方面是展現(xiàn)如何在高層次上創(chuàng)建系統(tǒng),這樣工程團(tuán)隊(duì)就能輕松理解其實(shí)現(xiàn)方式。該步驟也是在系統(tǒng)運(yùn)行生命周期中為系統(tǒng)提供支持的關(guān)鍵。
在確定我們的架構(gòu)時(shí),我們需要考慮模塊化方法,這樣不僅能在當(dāng)前項(xiàng)目上進(jìn)行復(fù)用,而且還能在未來(lái)的項(xiàng)目上進(jìn)行復(fù)用。模塊化要求我們從第一天起就考慮可能的復(fù)用,并要求我們把每個(gè)模塊存檔為一個(gè)獨(dú)立的單元。就內(nèi)部 FPGA/SoC 模塊而言,像 ARM? AMBA? 高級(jí)可擴(kuò)展接口 (AXI) 這樣的通用接口標(biāo)準(zhǔn)有助于實(shí)現(xiàn)復(fù)用。
模塊化設(shè)計(jì)的一個(gè)重大優(yōu)勢(shì)就是能夠針對(duì)某些需求使用商用現(xiàn)成的模塊。商用現(xiàn)成(COTS)模塊讓我們能夠以更快的速度開(kāi)發(fā)系統(tǒng),因?yàn)榻柚? COTS,我們能夠把我們的工作重點(diǎn)放在項(xiàng)目從我們的專業(yè)能力產(chǎn)生的增值中獲益最大的部分上。
系統(tǒng)電源架構(gòu)是一個(gè)需要縝密思考的的設(shè)計(jì)方面。許多嵌入式系統(tǒng)會(huì)要求隔離 AC/DC 或 DC/DC 轉(zhuǎn)換器來(lái)確保嵌入式系統(tǒng)的故障不會(huì)擴(kuò)散。下圖顯示的是電源架構(gòu)的示例。來(lái)自該模塊的輸出軌需要二級(jí)調(diào)整來(lái)為處理內(nèi)核和轉(zhuǎn)換裝置提供電壓。我們必須仔細(xì)防范這些階段發(fā)生嚴(yán)重的開(kāi)關(guān)損耗和效率下降。因?yàn)樾式档鸵馕吨到y(tǒng)熱耗散增大,如果不正確解決就會(huì)影響單元的可靠性。
圖 — 在本電源架構(gòu)示例中,模塊的輸出軌需要二級(jí)穩(wěn)壓。
我們必須仔細(xì)了解使用的線性調(diào)整器的行為以及在電源線上進(jìn)行進(jìn)一步濾波的要求。這一要求的原因是 FPGA 和處理器等器件的開(kāi)關(guān)頻率遠(yuǎn)遠(yuǎn)高于線性調(diào)整器的控制環(huán)路所能應(yīng)對(duì)的水平。隨著噪聲頻率提高,線性調(diào)整器的噪聲抑制能力下降,導(dǎo)致需要采用額外的濾波和去藕技術(shù)。如果不了解這一關(guān)系,會(huì)造成混合信號(hào)設(shè)備出現(xiàn)問(wèn)題。
另一個(gè)重要的考慮因素是時(shí)鐘和復(fù)位架構(gòu),尤其是在有多個(gè)需要同步的開(kāi)發(fā)板的情況下。在架構(gòu)層面我們必須考慮時(shí)鐘分配網(wǎng)絡(luò):我們是否在跨多個(gè)開(kāi)發(fā)板扇出單個(gè)振蕩器,或是使用多個(gè)頻率相同的振蕩器?為確保時(shí)鐘分配的穩(wěn)健可靠性,我們必須考慮:
振蕩器啟動(dòng)時(shí)間。我們必須確保在整個(gè)時(shí)間周期內(nèi)激活復(fù)位(如果需要)。
振蕩器歪斜。如果我們要在跨多個(gè)開(kāi)發(fā)板扇出振蕩器,時(shí)序是否至關(guān)重要?如果是,我們需要考慮線路卡上的歪斜(連接器引起的)和緩沖器自身引起的歪斜。
振蕩器抖動(dòng)。如果我們?cè)陂_(kāi)發(fā)混合信號(hào)設(shè)計(jì),我們需要確保使用低抖動(dòng)時(shí)鐘源,因?yàn)槎秳?dòng)的增大會(huì)降低混合信號(hào)轉(zhuǎn)換器的信噪比。在我們使用千兆位級(jí)串行鏈路時(shí)情況也是一樣,因?yàn)槲覀冃枰褂玫投秳?dòng)時(shí)鐘源在鏈路上取得良好的誤碼率。
我們也必須注意復(fù)位架構(gòu),確保只在需要的地方使用復(fù)位。例如基于 SRAM 的 FPGA 一般不需要復(fù)位。
如果我們?cè)谑褂脧?fù)位的異步激活,我們需要確保移除它不會(huì)導(dǎo)致亞穩(wěn)態(tài)問(wèn)題。
二、清晰定義接口
內(nèi)外部接口的正式文檔在機(jī)械、物理和電氣層面為各個(gè)接口提供清晰的定義,以及協(xié)議和控制流。這些正式文檔也往往被稱為接口控制文檔 (ICD)。當(dāng)然最好是盡量使用標(biāo)準(zhǔn)通信接口。
接口定義最重要的一個(gè)方面是外部接口的“連接化”。這個(gè)過(guò)程考慮了所需連接器的引腳分配,連接器引腳的額定功率以及所要求的插拔次數(shù),以及任何對(duì)屏蔽的要求。
在我們?yōu)槲覀兊南到y(tǒng)考慮連接器類型的時(shí)候,我們應(yīng)確保不會(huì)因?yàn)樵谧酉到y(tǒng)中使用相同類型連接器而造成不利的交叉連接。通過(guò)使用不同類型連接器或采用不同的連接器鍵位(如果支持),我們就能夠避免交叉連接的可能性。
連接化是我們開(kāi)始使用之前確定的預(yù)算要求的首個(gè)方面之一。特別是我們可以使用串?dāng)_預(yù)算來(lái)指引我們定義引腳分配。下圖所示的例子說(shuō)明了這一流程的重要性。重新安排引腳分配,將接地基準(zhǔn)電壓(GND) 引腳布局在信號(hào) 1 和信號(hào) 2 之間,可以降低互感以及由此引發(fā)的串?dāng)_。
圖 — 連接化是接口定義最重要的特征之一。
接口控制文檔 (ICD) 必須對(duì)系統(tǒng)接地進(jìn)行定義,尤其是在項(xiàng)目要求外部 EMC 的時(shí)候。在這種情況下,我們必須小心避免讓有噪聲的信號(hào)地產(chǎn)生輻射。
工程師和項(xiàng)目經(jīng)理掌握著一系列策略,以確保他們交付的嵌入式系統(tǒng)能夠滿足質(zhì)量、成本和調(diào)度要求。不過(guò)當(dāng)項(xiàng)目遇到困難時(shí),我們可以確信在項(xiàng)目不發(fā)生重大變化的情況下其此前的性能是其未來(lái)性能的良好提示。
以上便是此次小編帶來(lái)的“嵌入式系統(tǒng)”相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)本文分享的嵌入式系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!