Andes D1088 在汽車ADAS之應(yīng)用
高級(jí)駕駛輔助系統(tǒng)(Advanced Driver Assistance Systems;ADAS)為現(xiàn)今IT產(chǎn)業(yè)發(fā)展的重要方向,是將來(lái)可以達(dá)到無(wú)人駕駛智能車輛的技術(shù)高級(jí)過(guò)程。ADAS的主要功能并不是控制汽車,而是為駕駛?cè)颂峁┸噧?nèi)的工作情況與車外環(huán)境變化等相關(guān)信息進(jìn)行分析,預(yù)先警告可能的危險(xiǎn)狀況,讓駕駛?cè)颂嵩绮扇?yīng)對(duì)措施,避免交通意外發(fā)生。晶心科技的產(chǎn)品 D1088具備數(shù)字信號(hào)處理器(digital signal processor,DSP)指令,除了一般CPU指令外還多了SIMD instructions來(lái)加速ADAS算法的計(jì)算,增加ADAS產(chǎn)品的性能,也因此獲得客戶的認(rèn)同使用晶心科技D1088開(kāi)發(fā)ADAS產(chǎn)品。使用D1088開(kāi)發(fā)的ADAS產(chǎn)品包括盲點(diǎn)偵測(cè)(Blind-Spot Detection, BSD),前車碰撞警示(Forward-Collision Warning, FCW),車道偏移警示(Lane-Departure Warning, LDW),運(yùn)動(dòng)目標(biāo)偵測(cè)(Motion-Object Detection, MOD),倒車碰撞警示(Rear-Collision Warning, RCW),行人碰撞警示(Pedestrian-Collision Warning, PCW)及行車紀(jì)錄器。
本文引用地址:http://butianyuan.cn/article/201612/341776.htm車用電子須通過(guò)AEC-Q100(Automotive Electronics Council - Failure Mechanism Based Stress Test Qualification For Integrated Circuits)的認(rèn)證,要求有別于一般消費(fèi)性電子產(chǎn)品,本文的目的除了告訴我們的客戶(IC設(shè)計(jì)業(yè)者)D1088的優(yōu)勢(shì),也與我們的客戶一起探討車用電子與消費(fèi)性電子產(chǎn)品間的差異。希望在車用電子領(lǐng)域,晶心科技與我們的客戶攜手同行從今日開(kāi)發(fā)ADAS芯片到未來(lái)的無(wú)人車自動(dòng)駕駛。
1. D1088應(yīng)用于ADAS的優(yōu)勢(shì)
生活環(huán)境中都是模擬信號(hào),聲音是模擬信號(hào),圖像是模擬新號(hào),汽車碰撞的壓力值還是模擬信號(hào),汽車在行進(jìn)中,傳感器將量測(cè)數(shù)值傳送進(jìn)ADAS控制器,經(jīng)過(guò)ADC轉(zhuǎn)換后得到數(shù)字訊號(hào)﹐車內(nèi)外環(huán)境中充滿了干擾與噪聲,濾波器可以濾掉噪聲與干擾,大大提升訊號(hào)正確性與可靠度,還原事物的原貌。文中以數(shù)字濾波器 FIR (Finite Impulse Response)為例,比較使用一般CPU指令與D1088提供的DSP指令在運(yùn)算FIR時(shí)的差異,說(shuō)明D1088的優(yōu)勢(shì)與特性。
1.1 使用Fir_q15 函數(shù)驗(yàn)證
以ADAS 中車道偏移警示系統(tǒng)會(huì)用到的FIR 數(shù)字濾波器,使用Fir_q15[1] 函數(shù)C語(yǔ)言實(shí)作如下所示:
void nds32_fir_q15(const nds32_fir_q15_t *instance,q15_t *src, q15_t *dst, uint32_t size)
此FIR 數(shù)字濾波器函數(shù),其中函數(shù)的輸入?yún)?shù):*instance此是指向FIR 結(jié)構(gòu)體的指針,數(shù)字濾波器參數(shù)特性定義在此。輸入*src 與輸出*dst是以Q15的數(shù)據(jù)格式來(lái)表征,size 是此函數(shù)一次處理的抽樣個(gè)數(shù),本實(shí)驗(yàn)的抽樣個(gè)數(shù)是1024。
在使用此函數(shù)時(shí),設(shè)計(jì)兩種定義,一種是全部使用Andes baseline 指令,另一種使用DSP指令,D1088除了具備一般CPU功能外,增加超過(guò)130 條DSP 相關(guān)指令。在此函數(shù)中除了運(yùn)用DSP 矩陣指令外也使用了DSP中的saturation 運(yùn)算,當(dāng)數(shù)字信號(hào)運(yùn)算后產(chǎn)生overflow或underflow時(shí),沒(méi)有使用saturation 運(yùn)算會(huì)產(chǎn)生錯(cuò)誤且離譜的結(jié)果,Andes saturation指令可以大大提升效能。
在Fir_q15函數(shù)在D1088上做驗(yàn)證函數(shù)的抽樣個(gè)數(shù)為1024,在全部使用baseline 指令運(yùn)算所得的cycle數(shù)除以取樣數(shù)目1024得到每一個(gè)DSP信號(hào)所需要的cycle數(shù)是210,如果使用DSP指令,處理每一筆DSP信號(hào)只需要的是41 cycles。從Fir_q15 函數(shù)運(yùn)算結(jié)果得知DSP 指令對(duì)比 baseline指令運(yùn)算性能提升5.12倍。
1.2 DSP Benchmark 數(shù)值
下圖[2]是依各類測(cè)試基準(zhǔn)得到D1088與 Baseline CPU的benchmark 數(shù)據(jù),總體benchmark的平均值D1088/N1068有64%的性能提升:
圖1. DSP Library 性能圖
2. 車用電子產(chǎn)品需要通過(guò)的認(rèn)證
近幾年隨著汽車市場(chǎng)逐步走向車聯(lián)網(wǎng)、電動(dòng)汽車領(lǐng)域,需要更多駕駛信息輔助整合系統(tǒng),也讓IC設(shè)計(jì)業(yè)者找到一個(gè)好的發(fā)展方向與新的產(chǎn)品市場(chǎng)。很明顯,車用電子要求有別于一般消費(fèi)性產(chǎn)品,分別在產(chǎn)品的壽命,溫度的范圍,可靠度等級(jí)與安全性的要求等皆遠(yuǎn)高于消費(fèi)性電子產(chǎn)品,車用電子需要經(jīng)過(guò)ISO 26262與AEC-Q100認(rèn)證。晶心科技是CPU IP 的供貨商,提供CPU IP給IC設(shè)計(jì)業(yè)者。從AEC-Q100的驗(yàn)證流程中,了解IC設(shè)計(jì)業(yè)在車用電子所在的角色,也可以得知CPU與IC設(shè)計(jì)業(yè)者在車用電子中的位置與關(guān)系。
2.1 車用IC規(guī)范AEC-Q100驗(yàn)證流程
圖2為AEC-Q100規(guī)范中的驗(yàn)證流程[3],此圖是以Die Design→Wafer Fab.→PKG Assembly→Testing的制造流程來(lái)繪制,各模塊的關(guān)聯(lián)性須要參考圖中的箭頭符號(hào),本文重點(diǎn)著重在IC設(shè)計(jì)業(yè)者(Design House),所以僅標(biāo)示AEC-Q100中Design House與 Design Verification 相關(guān)測(cè)試項(xiàng)目。
圖2. AEC-Q100驗(yàn)證流程
2.2 IC設(shè)計(jì)業(yè)者進(jìn)行AEC-Q100驗(yàn)證
在AEC-Q100建議中,IC設(shè)計(jì)業(yè)者需要依據(jù)IC芯片在汽車中使用位置區(qū)分為引擎區(qū)與乘坐區(qū)兩部份,其基本工作環(huán)境要求不同,故對(duì)于測(cè)試溫度,可靠度,安全性的建議規(guī)格也不同。由于IC芯片種類繁多,因此在試驗(yàn)條件上,AEC-Q100已進(jìn)行分門別類,亦即依照屬性設(shè)定建議的試驗(yàn)條件,當(dāng)IC芯片設(shè)計(jì)測(cè)試規(guī)范訂定后依據(jù)圖2 AEC-Q100驗(yàn)證流程圖,IC設(shè)計(jì)業(yè)者需完成紅框的驗(yàn)證項(xiàng)目,當(dāng)Wafer Foundry也通過(guò)需做測(cè)項(xiàng)后,AEC-Q100驗(yàn)證項(xiàng)目都完成后,就可說(shuō)此IC芯片完成AEC-Q100的驗(yàn)證。
3. 車用電子產(chǎn)品需要通過(guò)的認(rèn)證
除了ADAS本身須具備的功能需通過(guò)AEC-Q100認(rèn)證外,也需有額外設(shè)計(jì)才能符合在汽車的應(yīng)用環(huán)境下的需求,下列幾個(gè)舉例說(shuō)明在車用ADAS中增加的設(shè)計(jì),有別于一般消費(fèi)性電子產(chǎn)品。
3.1 CRC checksum 安全驗(yàn)證
在車用ADAS設(shè)計(jì)實(shí)例中,考慮到汽車環(huán)境中干擾嚴(yán)重且需要高可靠度。ADAS程序在刻錄進(jìn)ADAS 產(chǎn)品的NOR-Flash時(shí),將欲刻錄程序經(jīng)由CRC32-CCIR演算后得到32bits結(jié)果一并寫(xiě)在NOR-Flash上。在車上當(dāng)ADAS產(chǎn)品開(kāi)機(jī)后,NOR-Flash 上的程序搬到RAM后,在RAM的程序也一樣經(jīng)過(guò)CRC32-CCIR演算后得到的結(jié)果與程序后面32bit checksum演算結(jié)果做比對(duì),如果RAM端與NOR-Flash數(shù)值一致表示通過(guò)CRC checksum 安全驗(yàn)證,如果數(shù)值不一致代表RAM上的程序在過(guò)程中被干擾須采取對(duì)應(yīng)的措施。增加CRC checksum 安全驗(yàn)證可以知道車用ADAS對(duì)安全與可靠度要求遠(yuǎn)高于一般消費(fèi)性電子產(chǎn)品。
3.2 程序啟動(dòng)前先行驗(yàn)證 CPU 周邊
有別于一般消費(fèi)性產(chǎn)品,車用電子產(chǎn)品在程序啟動(dòng)前需驗(yàn)證CPU周邊device本身之正確性,以ADAS實(shí)例來(lái)說(shuō)明需要驗(yàn)證cache與RAM。在ADAS程序執(zhí)行前,提供晶心科技自定義指令集CCTL (Cache Control)指令做cache的驗(yàn)證。將CCTL指令以intrinsic 函數(shù)方式(如下所示)[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)
開(kāi)發(fā)ADAS客戶使用晶心科技提供__nds32__cctlidx_write 函數(shù)寫(xiě)入 再用__nds32__cctlidx_read 函數(shù)讀出來(lái)驗(yàn)證整個(gè)cache device。
RAM在使用前也需要做RAM device的驗(yàn)證,進(jìn)行RAM device 驗(yàn)證需要驗(yàn)證程序結(jié)合RAM 測(cè)試pattern。晶心科技使用程序編寫(xiě)的技巧提供ADAS開(kāi)發(fā)業(yè)者不需要用到RAM的驗(yàn)證程序結(jié)合ADAS開(kāi)發(fā)業(yè)者使用March C Algorithm做為的RAM device的驗(yàn)證pattern。
在ADAS開(kāi)機(jī)時(shí)使用March C Algorithm 來(lái)做RAM的BIST好處是快速,產(chǎn)品開(kāi)機(jī)時(shí)所需的等待時(shí)間對(duì)于車用產(chǎn)品極為重要,也是車用產(chǎn)品優(yōu)劣的重要評(píng)判準(zhǔn)則,March C Algorithm 除了簡(jiǎn)單快速外,還有fault coverage 高的特性。受到廣泛的應(yīng)用,將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. 結(jié)語(yǔ)
D1088具DSP指令適合應(yīng)用在高級(jí)駕駛輔助系統(tǒng)。晶心科技提供高性能符合車用的CPU給IC設(shè)計(jì)業(yè)者,在IC設(shè)計(jì)業(yè)者開(kāi)發(fā)車用ADAS產(chǎn)品時(shí),晶心科技提供適當(dāng)?shù)闹С謪f(xié)助IC設(shè)計(jì)業(yè)者開(kāi)發(fā)具競(jìng)爭(zhēng)力且符合車規(guī)的ADAS芯片與系統(tǒng),衷心感謝偉詮公司顧朝奇博士與陳文慶先生的協(xié)助,才能完成此技術(shù)文章。
電子產(chǎn)業(yè)各項(xiàng)領(lǐng)域中,不論是MCU,觸控,IoT與本文探討之車用ADAS,晶心科技都已取得不錯(cuò)的成績(jī),也期望在未來(lái)趨勢(shì)ADAS與車聯(lián)網(wǎng)產(chǎn)業(yè)中晶心科技與我們的客戶IC設(shè)計(jì)業(yè)者緊密的合作,開(kāi)發(fā)出具競(jìng)爭(zhēng)力的芯片與系統(tǒng),達(dá)到雙贏的目的。
參考文件
[1] Andes Fir_q15 Program “nds32_fir_q15.c”
[2] Andes Company Profile July 2016 page 28
[3] 新通訊 2016 年 4 月號(hào) 182 期《 技術(shù)前瞻 》
[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
評(píng)論