基于SOPC技术的事故现场处理平台设计与实现
扫描二维码
随时随地手机看文章
摘 要:本文介绍了利用SOPC设计方法,以Altera公司的Nios软核处理器为核心完成的事故现场处理平台的设计。就其中最重要的两部分——SCCB总线控制模块和SRAM读写控制模块的具体实现做了详细介绍,并给出了SRAM写控制器的实际仿真结果。最后,总结了SOPC的设计方法。
关键词:SOPC;事故现场处理平台;IP核;SCCB总线
引言
当前移动警务的广泛应用,使得交警在事故现场就能够对肇事司机和车辆进行现场处理。但是,大部分的应用只是停留在车牌号码等非常简单的文本数据的传输上,如果能够将移动警务的内容拓展到图像数据,将事故现场的图像等信息实时地传给控制中心,就可以更加迅速和精确地对事故进行现场处理。SOPC(Systems-on-a-Programmable Chip)是Altera公司大力倡导的基于PLD的SoC设计方法,有设计灵活、便捷的特点,不仅在产品的性能、速度和连接上具有优势,而且可以缩短上市时间、降低成本。本文介绍的利用SOPC方法,基于Altera公司的Nios软核处理器的事故现场处理平台是一台便携式的移动处理系统,可实现现场数据采集、无线传输以及和控制中心通过无线方式交互数据的功能。
事故现场处理平台
构成及硬件设计
平台构成
事故现场处理平台可以分为五个部分:图像采集部分、压缩存储部分、无线传输部分、信息显示部分和远端服务器部分,如图1所示。除了外部必备的摄像头、输入输出设备、无线模块及大容量存储器外,所有的控制逻辑全部和处理器一起,都集成在FPGA内部,使得系统的体积、功耗及成本都有明显的下降。而且,由于PCB板上走线不合理而带来的对设计性能的影响被降到了最低。
硬件设计
本设计的硬件框图如图2所示。输入输出设备利用标准的GPIO实现控制,在Altera的Quartus II软件中已经集成了GPIO的控制模块,只需通过SOPC Builder 软件的图形界面就可进行添加。无线模块的控制采用标准串口,其控制模块也已集成。
需要自己开发的模块就是SRAM的读写控制模块。因为图像数据的缓存和处理需要用到大量的存储空间,而开发板所提供的存储资源显然不够,所以在采集板上也加上了外扩的SRAM,需要为它们开发读写控制模块。
SCCB总线控制模块及
SRAM读写控制模块的
设计与仿真
在本系统的设计过程中,最为重要和困难的部分就是将自己所需要的用户IP核集成到FPGA资源中。下面详细介绍一下这两个模块的设计和构成:
SCCB总线控制模块
系统中使用的摄像头型号是OmniVision公司的OV7649 CAMERACHIPS芯片及其配套的CMOS镜头。这是一款低电压的CMOS图像传感器芯片,通过其特有的SCCB(Serial Camera Control Bus)总线的控制,可以实现全帧、半帧、子采样等各种形式的图像输出,输出格式可选择配制成YUV、RGB或者原始RGB等,另外可进行自动曝光控制,图像增益控制等。而所有的配置,都是通过SCCB总线进行更改。
状态机模型可简化为6种状态:Idle空闲;Bit_Start比特开始;Bit_Mid_LOW比特传输中低位传输;Bit_Mid_HIGH比特传输中高位传输;Bit_End比特传输结束;Trans_End整个传输结束。根据具体的跳转流程,用VHDL语言中的条件语句可以方便地完成,在此不作赘述。
TYPE states IS(Idle, Bit_Start,Bit_Mid_LOW,Bit_ Mid_HIGH,Bit_End, Trans_End);
SIGNAL nowState: states;
下面对其中填充帧数据的过程进行描述:
case nowState is
when Idle =>
......
when Bit_Start =>
......
end case;
在仿真过程中,由于要就很长一段时间的信号进行分析,所以限于篇幅,无法将仿真结果尽列于此。在工程实际使用中,SCCB总线控制模块已经被验证无误,能够正确地实现摄像头的配置,并且拍出的图片质量也达到了预期水平。
SRAM读写
控制模块
系统中选用的存储芯片为IDT71V424。和所有的存储芯片一样,IDT71V424芯片通过片选(CS)、读使能(OE)、写使能(WE)三条控制线进行控制。设计的难点并不是怎样将数据写进SRAM,而是怎样按照摄像头的数据输出速率将数据写进SRAM。摄像头的数据输出由场同步信号(VSYNC)和行同步信号(HREF)进行同步。
实现时没有直接用CPU对CS、WE、OE信号进行控制,而是产生一个doWrite信号,当此信号为高电平时,控制相应的CS、WE、OE信号进行写操作,在两个独立进程中实现。这样做的好处是使得各部分的耦合尽量的小,便于各自调试。
为了将输出数据与写入数据进行同步,系统不是对第一个场同步信号就作出反应,而是数过若干个场同步信号(VSYNC)后,等一切稳定运行了,才开始接收数据。
仿真结果如图3所示,在每个行周期内,数据都被正确地写到了数据线上,Data_cam信号是摄像头的输出数据,以偶数递增的数据作为输入的模拟,Data_sram是SRAM的数据线,只要在每个像素时钟pclk的上升沿读取Data_cam的数据,就能保证数据的正确写入。
由仿真结果可以很清楚的看到,设计是合理和有效的。并且,在工程实践中,该SRAM控制器也已经被证明能够可靠工作。
设计总结
目前,单个芯片所能提供的晶体管数量已经超过了大多数电子系统的需求,如何高效、充分地发挥这些器件资源就变成了一项重大的挑战。任何一个电子系统设计几乎都会用到一些已经存在的IP模块,如微处理器、DSP、存储器等,与传统IC设计不同的是,嵌入式软件的设计也被集成到了SOPC的设计流程中。在SOPC的设计实践中,我们认识到设计方法的革命就是需要完成一个转变——从以功能设计为基础的传统流程转变到以功能整合为基础的全新流程。集成也是一种创新。在事故现场平台的设计过程中有如下体会:
充分利用SOPC
设计方法的灵活性
既然是便携式的设备,体积、功耗、集成度等就成为首先考虑的因素,器件选择要尽可能地为这个目标服务。SOPC设计方法的精髓就是将所有的模块集成到一块芯片中,避免过多的外围电路和器件造成体积、功耗的增多和可靠性的下降。采用USB模块或CMOS镜头完成图像数据采集任务的原因就是,其控制逻辑和协议的实现都可以在FPGA内部解决,而如果采用模拟器件,则不可避免地要增加外围电路,造成种种困难。
系统化和模块化的
设计方法和思路
系统性和自上而下的设计概念一直贯彻于设计中,始终着眼于通过各个模块的有效连结和运转,构成一个完整的闭环系统。通过Nios软核处理器将各个模块有机连接,不论对各个模块的具体实现细节有怎样地更改,都不会改变最初的系统设计的功能和性能,可以保证系统的完整性和可行性。
系统是由模块有机组成的,而Nios的最大优势则是模块化的硬件结构,以及由此带来的灵活性和可裁减性。在以团队为单位的设计过程中,模块化便于将系统的任务分解,使得各人有目的的去解决单个模块的设计、调试问题,不断改进,最后再将各个模块按照预先定义好的标准接口进行有机整合。这既符合当前业界实际的开发流程,也方便了实验室研究性学习的培养方式。
系统的可扩展性
由于QuartusII软件中SOPC Builder对外围接口的扩展极为方便,而且也支持直接对模块进行更新、升级,使得系统的扩展和完善变得更加容易。
可扩展性不仅表现在对既有设计的升级上,如果对系统不同的部分作不同程度地修改,再进行重新组合,就能够带来全新的应用。比如说,将无线模块换成网络接口,那么就可以用作监控系统;再比如说,将前端摄像头部分换成特殊数据的输入,就可以作为远程无线抄表系统。这样在应用方面的可扩展性,也正体现了设计之初的灵活、可裁减等特点,使得产品的应用领域大大拓宽,同时也延长了产品的寿命周期。