论文部分内容阅读
本课题依托于车载智能交通系统的研发这个大项目,主要是研究在智能交通系统中所使用到的通信技术以及协议。该智能交通系统是由TI公司TMS320DM8168与SAMSUNG公司的S3C6410组成。其中S3C6410为主控平台,主要是显示采集到的视频以及与DM8168之间进行数据和命令的传输。DM8168为实际的数据运算和处理平台,几乎所有的功能都是在8168上实现。TI816SoC是为混合系统,其SoC包括1ARM/1DSP/2M3 cores。DSP端主要负责人脸识别算法的运算,ARM端主要负责数据的处理与传输,整个系统由embbed linux @ ARM主控。通讯技术与协议的实现是在8168端的ARM核上实现,其中ARM端移植了linux操作系统。借助Linux系统的多任务管理机制来管理和控制整个程序的运行,可以减少程序员对程序管理的复杂度。题目中所谓的通讯指的是8168与6410之间进行的通讯,采用的是网络的连接方式。需要开发TCP通讯协议来进行数据的收发,并且定制通讯协议来保证数据传输的无误性。8168端相对于6410端为网络服务端,6410为客户端。开发准备工作包括:嵌入式开发平台的搭建、TI的开发包的安装、开发板上linux操作系统的移植以及无线网络驱动的加载。在整个开发平台搭建完毕之后,需要创建一个工程,在该工程中需要实现上面提到通讯功能。而通讯功能相对于整个项目来说只是一个功能模块,所以需要将该通讯模块编译成一个动态库文件,同时提供可以引用的头文件,在该头文件中所定义的函数要保留可以引用的接口,以便将来方便为主函数所调用。待整个通讯线路完成之后,如何实现与6410之间的数据和命令的交互才是最重要的。在这个过程中,需要构造合适的数据结构,以便更好的管理内存。该项目中使用的数据结构为循环队列,它能够使得内存空间相对独立。可以顺利的完成对人脸识别算法的调用,以及数据的传输和发送。经过上述的准备工作,成功的实现了 8168与6410之间数据与命令的交互。TCP网络通讯协议能够保证数据传输的无误性,同时循环队列可以保证数据的相互独立性,而linux这个完美的嵌入式操作系统则可以帮助程序员管理所有的线程,合理的分配线程所需要的资源,让整个系统可以很顺畅的运行。生成的动态库文件能够被主函数成功的调用,实现了程序的模块化的目的。因为这样可以在调试过程中缩小范围,方便定位问题所在之处。最重要的是模块化可以增强整个工程代码的健壮性和可移植性。