SoC系統(tǒng)中實(shí)時總線模塊的設(shè)計理念與應(yīng)用
錯誤的處理--最后一根救命稻草
如大家深知,芯片設(shè)計是沒有下一次機(jī)會的,那么錯誤的處理就成為了“救命的稻草”。假設(shè)TDM模塊很久沒有得到總線的控制,出現(xiàn)underrun(速率過低)與overrun(速率過高)情況。要采用隊列中“high-watermark(高水線)”與“low-watermark(低水線)”技術(shù),在隊列接近滿與空狀態(tài)發(fā)生前提前預(yù)警。預(yù)警通常反映了芯片系統(tǒng)中的一些設(shè)計問題與當(dāng)時電壓波動、干擾、局部高溫等瞬間問題,這時預(yù)警信號通常用最高/次高優(yōu)先級中斷發(fā)生。ARM CPU本身支持高優(yōu)先級中斷,而我們的隊列長度計算現(xiàn)在要重新計算,加上高優(yōu)先級處理這一段時間,具體的響應(yīng)時鐘周期,讀者請查閱相應(yīng)CPU手冊,這也是評價嵌入式CPU與實(shí)時操作系統(tǒng)(RTOS)的一項指標(biāo)。
圖4:由TDM模塊實(shí)現(xiàn)兩套寄存器的動態(tài)切換時序圖。
隊列深度=最長AHB總線獲得間隔×TDM輸入速率+ARM最長中斷響應(yīng)時間×TDM輸入速率
本文小結(jié)
我們在TDM模塊簡要設(shè)計中,闡述了結(jié)合各種基本技術(shù),如從緩存隊列到DMA到影子寄存器到動態(tài)分配到watermark與利用DSP算法特性,AHB總線特性、幀同步特性以及RTOS特性解決非實(shí)時與實(shí)時交換、CPU效率與資源占用、延時與DMA配置與動態(tài)切換的矛盾,追求最優(yōu)解決方案的過程與設(shè)計思路。
本文并沒有給出最初方案的隊列計算公式,是因為要考慮的因素過多,從另一個側(cè)面反映了它不是最優(yōu)方案。好的設(shè)計應(yīng)該是把復(fù)雜的需求簡單化、模塊化,當(dāng)然實(shí)際設(shè)計中比這種簡化設(shè)計要復(fù)雜,例如還要解決實(shí)時數(shù)據(jù)傳輸中雙方時鐘不同步等問題。但讀者只要掌握了基本思路與技術(shù),理解應(yīng)用特性、CPU特性及RTOS特性與算法,就可舉一反三,做出最優(yōu)的設(shè)計。
評論