图5 系统工作流程 本设计的系统图像采集压缩速度都要大于CAN总线的传输速度,因此只有第一次向CAN总线发送数据时需要判断压缩的数据是否已经达到8字节,以后每次当CAN传输完上一次压缩数据时,JPEG encoder已经又一次压缩好8字节数据,等待传输了,因此就不必每次都进行判断。
Wishbone总线与开源IP
系统中各模块的互连采用的是比较简单的Wishbone总线。Wishbone总线标准是开放式总线,没有任何专利费用,它现在由opencore维护,并且在opencore的网站上有很多由专人维护并且与Wishbone兼容的开源IP。本设计中的I2C master和CAN controller就是从opencore上免费获得的开源IP。合理的使用这些软核,并将其集成于自己的系统中将大大加快整个设计的进程和产品的成本。
在系统中存在1个主设备(master)和3个从设备(slave),为每个slave分配好固定的地址,因此Wishbone总线模块所做的事情仅仅是进行地址译码。
系统验证与仿真
虽然本设计所构建的SOC系统是基于FPGA的,但是在上板调试前首先在PC上建立整个系统的仿真环境,对系统进行充分的验证,这样可大大的加速整个项目的进度。本设计中为系统建立的仿真环境如图6所示。 图6 验证环境 准备原始数据做为系统图像源的输入,并且使用Can Receiver采集系统的输出,最后和软件模型生成的JPEG压缩数据进行比对,对错误进行定位,另外也可在系统中设置监控点,输出数据流,这样便可知道具体在哪一个环节中出现了错误。图7为运行testbench产生的接收数据波形文件。
图7 数据波形 总结
在本设计中,笔者使用FPGA构建了一个SOC系统,完成了图像的采集、压缩和传输功能,很多地方还可以进一步的 优化。本设计的重点在于在FPGA上应用了SOC的设计方法,并实现了一个比较简单的SOC系统。这样做绕过了ASIC设计的高复杂性,高风险性和高投入,从而实现了简化最终PCB系统,降低硬件成本的目的,并且对系统的实现更加灵活,能按照客户的愿望定制,修改系统的功能。另外在整个设计过程中,尽量的应用可重用的IP软核,最大限度的加快了开发进度和降低了开发费用和成本。
现在,FPGA厂商已推出65nm最新工艺的器件,使集成度进一步提高,而功耗和成本又大幅度降低。在这样的环境下,相信在不久的将来FPGA会不仅仅只作为协处理器的配角出现,而是更多的出现以FPGA实现的SOC系统。
| | |