MicroBlaze微处理器在实时汽车系统中的应用
简化算法开发工作每次迭代所需的集成工作。我们把主处理器和 Foot-LITE 算法处理器隔离开来,中间用MicroBlaze? Fast Simplex Link (FSL) 总线系统来实现通信。这样可以把两个处理器的存储完全隔离开来(与常见的共享存储的做法不同),可以大幅度简化集成工作,因为错误不会通过内存损坏而从一个处理器迁移到另一个处理器上。
此外,这样可以避免对处理器周期的竞相争用。这就意味着我们的合作伙伴可以放心,我们对主机应用所做的任何修改都不会影响他们的应用性能。
图 2 – 基于 Spartan 的处理模块
我们开发了一系列封装功能,允许我们访问Simulink? 编译器生成的 C 语言程序,而无需对接口进行大幅更改。我们可通过 I2C 总线提供少量非易失板上缓存空间,用于存储Foot-LITE 算法中的各种调节参数 (tune parameter)。这就需要一个简单的封装程序,以便算法在 Simulink 环境下实现轻松访问,从而在启动时读取该内存,并在关断时写回。
该系统需要测量加速度和横摆角速度,并通过CAN总线与车道和车辆检测系统通信。由于我们已经有了底层CAN 驱动程序,而且我们担心Linux应用在40毫秒的时间范围内测量车辆动态信息的及时性,我们决定在系统中再增加一个MicroBlaze。这样可以不必把 CAN 驱动程序导入Linux,而且可以通过另一个隔离的处理节点实现确定的性能。这对算法非常重要,因为算法使用的动态测量值。此外,这种方法还可以让我们把编写软件的工作拆开,进行并行开发。这里我们还是使用 FSL 作为动态处理器和Foot-LITE 算法处理器之间的接口。
视频捕获与压缩
系统的初步构想是把视觉系统的数据通过CAN 总线传输给 Foot-LITE 算法单元,为车道宽度和偏移量、与前方车辆之间的距离等提供简单的测量。项目合作伙伴决定强化其设置,将捕获到的视频帧传输到服务器,进行离线环境分析,以转译系统提供的信息的含义。鉴于这项要求只针对"互联网质量"的视频(频率为5 Hz 时,像素为 300x200),我们觉得我们可以再用一个 MicroBlaze,把视频流实时压缩成一系列 JPEG 图像。摄像头捕获的图像是宽VGA(频率为30Hz 时,像素为 720 x 480,)视频流。很明显,图像降采样工作应该交给硬件来做。
我们设计了一个简单的外设,通过交替去掉像素和行来进行降采样操作,生成360 x 240的图像。该外设还每 5 帧去掉 4 帧,以获得所需的帧率。无需进行更复杂的处理就可以获得视觉上可以接受的结果,因为JPEG 处理会让走样的人为效果不可见。我们使用系统生成器来开发该外设,因为它可以直接导出到 EDK,而且我们已经有了使用系统生成器进行更加复杂的图像处理的经验。
进入连接到 JPEG 处理器的 SDRAM 的数据由降采样外设的总线负责控制,数据随即被逐帧压缩,送入循环缓冲区,直到Foot-LITE算法发出标志。JPEG处理器将压缩后的视频帧(也是通过 FSL)发送到主机 MicroBlaze。我们使用独立 JPEG 小组提供的代码库,而且发现基本不需要优化就可以工作在 5Hz 的条件下。
另外,通过隔离的处理器让另一位软件工程师(身处异地)在进行系统相同部分开发的时候,都可以并行不悖。
用蓝牙连接到智能电话和车载诊断系统
简便的安装是这个项目的关键因素。减少系统使用的线缆数量也是需要考虑的重要方面。
我们选用蓝牙做为连接到智能电话的接口。标准USB蓝牙连接器的驱动程序是ucLinux内核的标配,虽然我们不得不自己构建用户空间工具。以上这些工作跟其他代码有着许多关联性,而这些代码也都是经过Petlinux的工具包交叉编译并添加到ucLinux的 文件系统中。
我们选定蓝牙作为智能电话接口后,我们自然也选择蓝牙作为连接到板载诊断系统的接口。我们使用标准的现成蓝牙-车载诊断系统 (Bluetooth-OBD) 接口模块,这样从系统中省掉了又一个有线链接。
图 3 - 显示主要外部元件的FPGA框图
简便的调试
调试有多个并行执行线程的系统往往难度较大。不过把系统划分给多个处理器就可以使事情变得简单。我们不需要多线程调试器(比如在Linux环境中调试多个处理器时所需要的)。赛灵思调试器 (XMD) 可以连接到多个处理器上,而且通过使用TCL(XMD能理解的工具命令行语言),我们可以自动完成设置,并将待测的代码下载到多个处理器上。当然,也可以使用采用 printf 声明的常规嵌入式系统调试方法,因为每个处理器都有自己的串行端口。
在调试处理器间通信时具有重大价值的另一种工具是 ChipScope? Pro。该嵌入式逻辑分析器内建在 FPGA 结构中,让我们可以捕获通过FSL 链路的数据,把隐藏较深的缺陷的漏洞排查到发送方或者接收方,
多处理器系统 uClinux FPGA MicroBlaze 相关文章:
- 基于uClinux的汽车黑匣子的设计(06-28)
- FPGA技术在汽车电子中的应用(11-26)
- 电源分配结构的三大转变为电源管理技术开创新局面(01-10)
- 利用FPGA协处理器优化汽车信息娱乐和信息通讯系统设计(01-24)
- 如何利用可编程器件设计车用显示系统(08-30)
- 基于SoPC的汽车安全监控系统设计(07-09)