二零零六年七月份以来,从第一版机械式仪表板的半路进入,到第二版数字式仪表板的全程参与。对于仪表板的技术和功能层面的研究、学习、设计开发基本完成,春节一过,“要死不活”的仪表板是该考虑它的产品功能和市场应用的时候了。
2006年7月~2006年9月:EMI测试、改进、验证、理论研究。
ARM7+4*Step Motor传统的机械式仪表板表现形式,加上了一点现代气息-CAN Bus。同时也为EMI测试带来了有事可做,当然这个是后来才清楚。
2006年10月~2007年2月:数字仪表板方案确定、软件设计、编写代码、VC仿真、软件移植、整体调试。
ARM9+SM501+8-inch TFT LCD(800*480)高档的数字仪表板,用流行的话来讲,“简直帅呆了”,私家美工Spring功不可没。两位硬件工程师成绩突出,成长不少。
2007年3月:存在的问题、明天的方向。
长得帅总会让人联想到华而不实,徒有其表,数字仪表盘并不例外。8-inch的800*480的TFT LCD放在仪表板上,可以凸现其尊贵典雅之风范,可让其Run一下就原形毕露了:
1,表针的旋转速度。如果单纯从CPU的主频200MHz来看,应该足够,可用UCGUI画出来的图形确实需要做大量的工作的,表盘的圆弧需要三角函数的运算,还有表针(及多边形)的旋转也需要进行三角函数的运算,所以避免不了浮点运算,可俺们用的是定点的ARM9去算浮点,没问题,无非就是慢点。这种慢应该还不至于到无法忍受;
2,UCGUI为防止多边形在旋转时不会出现抖动之感,于是引出动态内存的概念-MemDev,dynamic memory的SIZE得800*480*2(RGB=565)=768,000,还好俺们是在研发(哈哈,借口),暂不计成本,用上64M外接SDRAM,真是要命,于是CPU不断的访问SDRAM,计算,还得把SDRAM的显示内容从SDRAM搬到SM501的显存中,啊~~~,可怜的CPU忙死了,郁闷的工程师气死了,那速度表针居然会一两秒走一步,哇塞,司机的车子起飞了,速度表针估计还指在20KM/h;
从情感上讲应该不大可能是这种情况,我们两位亲爱的做硬件的兄弟(Maybe they are firmware engineer)拿来示波器看总线速度,向IC的FAE咨询,
a,用数据和指令Cache;
b,DMA;
c,协处理器进行运算;
d,改变SDRAM配置,加快CPU读写SDRAM速度;
。。。。。。
A,哎,真不知是那位FAE忽悠了我们可爱兄弟,说,数据Cache和指令Cache需要一起打开,一起用,不用MMU是不可能的,我们又没有上Linux,怎么办呢?看着漂亮的表盘走得这么慢,大家着急啊!关键时候再仔细看Datasheet,老大说过多次了,
; Turn on Icache.
ldr r0, =0x1078
mcr p15, 0, r0, c1, c0, 0
两条指令,速度至少提高10倍,明明可以单独打开指令Cache的嘛!所以老大的话永远是对的,这句名言确实有道理。可他说过那么多的大道理,我们怎么都悟不透呢?
b,c,d......讨论着,分析着,尝试着,研发总是需要时间的,不然那就是做工程了,呵呵