高档驾驭辅佐体系(Advanced Driver Assistance Systems;ADAS)为如今IT工业开展的重要方向,是将来能够到达无人驾驭智能车辆的技能高档进程。ADAS的主要功用并不是操控轿车,而是为驾驭人供给车内的工作情况与车外环境改变等相关信息进行剖析,预先警告或许的风险情况,让驾驭人提前采纳应对办法,防止交通意外发生。晶心科技的产品 D1088具有数字信号处理器(digital signal processor,DSP)指令,除了一般CPU指令外还多了SIMD instructions来加快ADAS算法的核算,添加ADAS产品的功用,也因而获得客户的认同运用晶心科技D1088开发ADAS产品。运用D1088开发的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)及行车纪录器。
车用电子须经过AEC-Q100(Automotive Electronics Council – Failure Mechanism Based Stress Test Qualification For Integrated Circuits)的认证,要求有别于一般消费性电子产品,本文的意图除了告知咱们的客户(IC规划业者)D1088的优势,也与咱们的客户一同讨论车用电子与消费性电子产品间的差异。希望在车用电子范畴,晶心科技与咱们的客户携手同行从今天开发ADAS芯片到未来的无人车自动驾驭。
1. D1088运用于ADAS的优势
生活环境中都是模仿信号,声响是模仿信号,图像是模仿新号,轿车磕碰的压力值仍是模仿信号,轿车在跋涉中,传感器将量测数值传送进ADAS操控器,经过ADC转化后得到数字信号﹐车内外环境中充满了搅扰与噪声,滤波器能够滤掉噪声与搅扰,大大提高信号正确性与牢靠度,复原事物的原貌。文中以数字滤波器 FIR (Finite Impulse Response)为例,比较运用一般CPU指令与D1088供给的DSP指令在运算FIR时的差异,阐明D1088的优势与特性。
1.1 运用Fir_q15 函数验证
以ADAS 中车道偏移警示体系会用到的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. 车用电子产品需求经过的认证
近几年跟着轿车商场逐渐走向车联网、电动轿车范畴,需求更多驾驭信息辅佐整合体系,也让IC规划业者找到一个好的开展方向与新的产品商场。很明显,车用电子要求有别于一般消费性产品,别离在产品的寿数,温度的规模,牢靠度等级与安全性的要求等皆远高于消费性电子产品,车用电子需求经过ISO 26262与AEC-Q100认证。晶心科技是CPU IP 的供货商,供给CPU IP给IC规划业者。从AEC-Q100的验证流程中,了解IC规划业在车用电子地点的人物,也能够得知CPU与IC规划业者在车用电子中的方位与联系。
2.1 车用IC标准AEC-Q100验证流程
图2为AEC-Q100标准中的验证流程[3],此图是以Die Design→Wafer Fab.→PKG Assembly→Testing的制作流程来制作,各模块的关联性需求参阅图中的箭头符号,本文要点着重在IC规划业者(Design House),所以仅标明AEC-Q100中Design House与 Design Verification 相关测验项目。
图2. AEC-Q100验证流程
2.2 IC规划业者进行AEC-Q100验证
在AEC-Q100主张中,IC规划业者需求根据IC芯片在轿车中运用方位区分为引擎区与乘坐区两部份,其根本工作环境要求不同,故关于测验温度,牢靠度,安全性的主张标准也不同。因为IC芯片品种繁复,因而在实验条件上,AEC-Q100已进行分门别类,亦即按照特点设定主张的实验条件,当IC芯片规划测验标准拟订后根据图2 AEC-Q100验证流程图,IC规划业者需完结红框的验证项目,当Wafer Foundry也经过需做测项后,AEC-Q100验证项目都完结后,就可说此IC芯片完结AEC-Q100的验证。
3. 车用电子产品需求经过的认证
除了ADAS自身须具有的功用需经过AEC-Q100认证外,也需有额定规划才干契合在轿车的运用环境下的需求,下列几个举例阐明在车用ADAS中添加的规划,有别于一般消费性电子产品。
3.1 CRC checksum 安全验证
在车用ADAS规划实例中,考虑到轿车环境中搅扰严峻且需求高牢靠度。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程序执行前,供给晶心科技自界说指令集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)
开发ADAS客户运用晶心科技供给__nds32__cctlidx_write 函数写入 再用__nds32__cctlidx_read 函数读出来验证整个cache device。
RAM在运用前也需求做RAM device的验证,进行RAM device 验证需求验证程序结合RAM 测验pattern。晶心科技运用程序编写的技巧供给ADAS开发业者不需求用到RAM的验证程序结合ADAS开发业者运用March C Algorithm做为的RAM device的验证pattern。
在ADAS开机时运用March C Algorithm 来做RAM的BIST优点是快速,产品开机时所需的等待时间关于车用产品极为重要,也是车用产品好坏的重要评判原则,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指令合适运用在高档驾驭辅佐体系。晶心科技供给高功用契合车用的CPU给IC规划业者,在IC规划业者开发车用ADAS产品时,晶心科技供给恰当的支撑帮忙IC规划业者开发具竞争力且契合车规的ADAS芯片与体系,衷心感谢伟诠公司顾朝奇博士与陈文庆先生的帮忙,才干完结此技能文章。
电子工业各项范畴中,不论是MCU,触控,IoT与本文讨论之车用ADAS,晶心科技都已获得不错的成果,也希望在未来趋势ADAS与车联网工业中晶心科技与咱们的客户%&&&&&%规划业者严密的协作,开发出具竞争力的芯片与体系,到达双赢的意图。
参阅文件
[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