Andes D1088 在汽車ADAS之應用
高級駕駛輔助系統(tǒng)(Advanced Driver Assistance Systems;ADAS)為現(xiàn)今IT產業(yè)發(fā)展的重要方向,是將來可以達到無人駕駛智能車輛的技術高級過程。ADAS的主要功能并不是控制汽車,而是為駕駛人提供車內的工作情況與車外環(huán)境變化等相關信息進行分析,預先警告可能的危險狀況,讓駕駛人提早采取應對措施,避免交通意外發(fā)生。晶心科技的產品 D1088具備數字信號處理器(digital signal processor,DSP)指令,除了一般CPU指令外還多了SIMD instructions來加速ADAS算法的計算,增加ADAS產品的性能,也因此獲得客戶的認同使用晶心科技D1088開發(fā)ADAS產品。使用D1088開發(fā)的ADAS產品包括盲點偵測(Blind-Spot Detection, BSD),前車碰撞警示(Forward-Collision Warning, FCW),車道偏移警示(Lane-Departure Warning, LDW),運動目標偵測(Motion-Object Detection, MOD),倒車碰撞警示(Rear-Collision Warning, RCW),行人碰撞警示(Pedestrian-Collision Warning, PCW)及行車紀錄器。
本文引用地址:http://2s4d.com/article/201612/341704.htm車用電子須通過AEC-Q100(Automotive Electronics Council - Failure Mechanism Based Stress Test Qualification For Integrated Circuits)的認證,要求有別于一般消費性電子產品,本文的目的除了告訴我們的客戶(IC設計業(yè)者)D1088的優(yōu)勢,也與我們的客戶一起探討車用電子與消費性電子產品間的差異。希望在車用電子領域,晶心科技與我們的客戶攜手同行從今日開發(fā)ADAS芯片到未來的無人車自動駕駛。
1. D1088應用于ADAS的優(yōu)勢
生活環(huán)境中都是模擬信號,聲音是模擬信號,圖像是模擬新號,汽車碰撞的壓力值還是模擬信號,汽車在行進中,傳感器將量測數值傳送進ADAS控制器,經過ADC轉換后得到數字訊號﹐車內外環(huán)境中充滿了干擾與噪聲,濾波器可以濾掉噪聲與干擾,大大提升訊號正確性與可靠度,還原事物的原貌。文中以數字濾波器 FIR (Finite Impulse Response)為例,比較使用一般CPU指令與D1088提供的DSP指令在運算FIR時的差異,說明D1088的優(yōu)勢與特性。
1.1 使用Fir_q15 函數驗證
以ADAS 中車道偏移警示系統(tǒng)會用到的FIR 數字濾波器,使用Fir_q15[1] 函數C語言實作如下所示:
void nds32_fir_q15(const nds32_fir_q15_t *instance,q15_t *src, q15_t *dst, uint32_t size)
此FIR 數字濾波器函數,其中函數的輸入參數:*instance此是指向FIR 結構體的指針,數字濾波器參數特性定義在此。輸入*src 與輸出*dst是以Q15的數據格式來表征,size 是此函數一次處理的抽樣個數,本實驗的抽樣個數是1024。
在使用此函數時,設計兩種定義,一種是全部使用Andes baseline 指令,另一種使用DSP指令,D1088除了具備一般CPU功能外,增加超過130 條DSP 相關指令。在此函數中除了運用DSP 矩陣指令外也使用了DSP中的saturation 運算,當數字信號運算后產生overflow或underflow時,沒有使用saturation 運算會產生錯誤且離譜的結果,Andes saturation指令可以大大提升效能。
在Fir_q15函數在D1088上做驗證函數的抽樣個數為1024,在全部使用baseline 指令運算所得的cycle數除以取樣數目1024得到每一個DSP信號所需要的cycle數是210,如果使用DSP指令,處理每一筆DSP信號只需要的是41 cycles。從Fir_q15 函數運算結果得知DSP 指令對比 baseline指令運算性能提升5.12倍。
1.2 DSP Benchmark 數值
下圖[2]是依各類測試基準得到D1088與 Baseline CPU的benchmark 數據,總體benchmark的平均值D1088/N1068有64%的性能提升
圖1. DSP Library 性能圖
2. 車用電子產品需要通過的認證
近幾年隨著汽車市場逐步走向車聯(lián)網、電動汽車領域,需要更多駕駛信息輔助整合系統(tǒng),也讓IC設計業(yè)者找到一個好的發(fā)展方向與新的產品市場。很明顯,車用電子要求有別于一般消費性產品,分別在產品的壽命,溫度的范圍,可靠度等級與安全性的要求等皆遠高于消費性電子產品,車用電子需要經過ISO 26262與AEC-Q100認證。晶心科技是CPU IP 的供貨商,提供CPU IP給IC設計業(yè)者。從AEC-Q100的驗證流程中,了解IC設計業(yè)在車用電子所在的角色,也可以得知CPU與IC設計業(yè)者在車用電子中的位置與關系。
2.1 車用IC規(guī)范AEC-Q100驗證流程
圖2為AEC-Q100規(guī)范中的驗證流程[3],此圖是以Die Design→Wafer Fab.→PKG Assembly→Testing的制造流程來繪制,各模塊的關聯(lián)性須要參考圖中的箭頭符號,本文重點著重在IC設計業(yè)者(Design House),所以僅標示AEC-Q100中Design House與 Design Verification 相關測試項目。
圖2. AEC-Q100驗證流程
2.2 IC設計業(yè)者進行AEC-Q100驗證
在AEC-Q100建議中,IC設計業(yè)者需要依據IC芯片在汽車中使用位置區(qū)分為引擎區(qū)與乘坐區(qū)兩部份,其基本工作環(huán)境要求不同,故對于測試溫度,可靠度,安全性的建議規(guī)格也不同。由于IC芯片種類繁多,因此在試驗條件上,AEC-Q100已進行分門別類,亦即依照屬性設定建議的試驗條件,當IC芯片設計測試規(guī)范訂定后依據圖2 AEC-Q100驗證流程圖,IC設計業(yè)者需完成紅框的驗證項目,當Wafer Foundry也通過需做測項后,AEC-Q100驗證項目都完成后,就可說此IC芯片完成AEC-Q100的驗證。
3. 車用電子產品需要通過的認證
除了ADAS本身須具備的功能需通過AEC-Q100認證外,也需有額外設計才能符合在汽車的應用環(huán)境下的需求,下列幾個舉例說明在車用ADAS中增加的設計,有別于一般消費性電子產品。
3.1 CRC checksum 安全驗證
在車用ADAS設計實例中,考慮到汽車環(huán)境中干擾嚴重且需要高可靠度。ADAS程序在刻錄進ADAS 產品的NOR-Flash時,將欲刻錄程序經由CRC32-CCIR演算后得到32bits結果一并寫在NOR-Flash上。在車上當ADAS產品開機后,NOR-Flash 上的程序搬到RAM后,在RAM的程序也一樣經過CRC32-CCIR演算后得到的結果與程序后面32bit checksum演算結果做比對,如果RAM端與NOR-Flash數值一致表示通過CRC checksum 安全驗證,如果數值不一致代表RAM上的程序在過程中被干擾須采取對應的措施。增加CRC checksum 安全驗證可以知道車用ADAS對安全與可靠度要求遠高于一般消費性電子產品。
3.2 程序啟動前先行驗證 CPU 周邊
有別于一般消費性產品,車用電子產品在程序啟動前需驗證CPU周邊device本身之正確性,以ADAS實例來說明需要驗證cache與RAM。在ADAS程序執(zhí)行前,提供晶心科技自定義指令集CCTL (Cache Control)指令做cache的驗證。將CCTL指令以intrinsic 函數方式(如下所示)[4]提供給客戶使用:
Unsigned int __nds32__cctlidx_read (const enum nds32_cctl_idxread subtype, unsigned int idx)
void __nds32__cctlidx_write (const enum nds32_cctl_idxwrite subtype, unsigned int b, unsigned int idxw)
開發(fā)ADAS客戶使用晶心科技提供__nds32__cctlidx_write 函數寫入 再用__nds32__cctlidx_read 函數讀出來驗證整個cache device。
RAM在使用前也需要做RAM device的驗證,進行RAM device 驗證需要驗證程序結合RAM 測試pattern。晶心科技使用程序編寫的技巧提供ADAS開發(fā)業(yè)者不需要用到RAM的驗證程序結合ADAS開發(fā)業(yè)者使用March C Algorithm做為的RAM device的驗證pattern。
在ADAS開機時使用March C Algorithm 來做RAM的BIST好處是快速,產品開機時所需的等待時間對于車用產品極為重要,也是車用產品優(yōu)劣的重要評判準則,March C Algorithm 除了簡單快速外,還有fault coverage 高的特性。受到廣泛的應用,將March C Algorithm 的pseudo code 詳列如下[5]:
//for writing 0s in block 1 and writing 1s in block 2, let n and m are rows and columns
for(i=0;i<(n-1)/2;i=i+1)
begin
for(j=0;j<(m-1);j=j+1)
mem[i][j]=0; //write 0 in m1
end
for(i=(n-1)/2;i<(n-1);i=i+1)
begin
for(j=0;j<(m-1);j=j+1)
mem[i][j]=1; //write 1 in m2
end
//for reading background and for writing alternate
for(i=0;i<(n-1)/2;i=i+1)
begin
for(j=0;j<(m-1);j=j+1)
begin
if(mem[i][j]==0)
mem[i][j]=1;
else return;
end
end
for(i=(n-1)/2;i<(n-1);i=i+1)
begin
for(j=0;j<(m-1);j=j+1)
begin
if(mem[i][j]==1)
mem[i][j]=0;
else return;
end
end
4. 結語
D1088具DSP指令適合應用在高級駕駛輔助系統(tǒng)。晶心科技提供高性能符合車用的CPU給IC設計業(yè)者,在IC設計業(yè)者開發(fā)車用ADAS產品時,晶心科技提供適當的支持協(xié)助IC設計業(yè)者開發(fā)具競爭力且符合車規(guī)的ADAS芯片與系統(tǒng),衷心感謝偉詮公司顧朝奇博士與陳文慶先生的協(xié)助,才能完成此技術文章。
電子產業(yè)各項領域中,不論是MCU,觸控,IoT與本文探討之車用ADAS,晶心科技都已取得不錯的成績,也期望在未來趨勢ADAS與車聯(lián)網產業(yè)中晶心科技與我們的客戶IC設計業(yè)者緊密的合作,開發(fā)出具競爭力的芯片與系統(tǒng),達到雙贏的目的。
參考文件
[1] Andes Fir_q15 Program “nds32_fir_q15.c”
[2] Andes Company Profile July 2016 page 28
[3] 新通訊 2016 年 4 月號 182 期《 技術前瞻 》
[4] Andes Programming Guide for ISA-V3 page 104
[5] Muddapu Parvathi , N. Vasantha, K. Satya Parasad, “Modified March C - Algorithm for Embedded Memory Testing” International Journal of Electrical and Computer Engineering (IJECE) Vol. 2, No.5, October 2012, pp. 571~576
ISSN: 2088-8708
關于晶心
為因應全球嵌入式系統(tǒng)應用的快速成長,2005年晶心科技創(chuàng)立于新竹科學園區(qū),致力于開發(fā)以32位處理器為核心的系統(tǒng)芯片設計平臺(Processor-based SoC Platforms)。晶心科技是一家國際化結合軟硬件平臺及系統(tǒng)整合能力且專注于系統(tǒng)芯片核心開發(fā)的公司。
隨著電子產業(yè)產品日趨多功能化,更多廠商開始對處理器及設計平臺要求更佳的整合性、延展性、設計彈性,以及高效能、低成本與低功率。這樣的復雜度已經超越傳統(tǒng)供應廠商所能提供的解決方案。晶心科技以創(chuàng)新的彈性配置平臺(Configurable Platforms),搭配獨特的軟硬件智財,來滿足未來客戶對產品高質量及快速上市的需求。晶心在自有CPU架構下經過幾年研發(fā)及市場的耕耘,目前的V3 CPU家族包括N7、N8、E8、S8、N9、N10、D10和N13系列都已成熟到位,滿足客戶各種應用面的全方位需求。
關于晶心科技提供之32位CPU IP,歡迎請參閱晶心科技網站 : www.andestech.com
評論