基于OV7725二值化图像的无线实时传输
2018-05-17陈业慧
陈业慧,黄 凯
(安徽新华学院电子通信工程学院,安徽 合肥 230088)
目前智能车和模式识别普遍采用储存复盘的方式来调试,这对实时系统分析显然具有一定的滞后性,因模式识别可以忽略彩色信息转而采用二值化的图像,这就大大缩小了图像的数据的大小,使得低成本的基于nRF24L01的实时图像传输成为可能.
1 系统的整体设计方案
发送方摄像头采用 OV7725,输出二值化图像,经过MK60DNZ512进行DMA采集,压缩,并通过nRF24L01传输给接收方的nRF24L01,配合STM32F103进行压缩二值化图像的接收并通过CH340串口模块传输给上位机,上位机使用LABVIEW对传输过来的图像进行有效性监测并解压缩实时的显示与处理.系统原理如图1所示.
图1 系统设计方案
1.1 主控模块
(1)发送方主控采用带16个通道的DMA控制器,主频100MHz的MK60DNZ512.DMA允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载,使用MK60的DMA模块进行摄像头数据的采集,大大减轻了CPU的负担,使得CPU有空闲资源处理系统中的其他任务.
(2)接收方主控采用STM32F103C8T6,72MHz主频.发送和接收共用的可编程波特率[1],最高串口速度达4.5Mbits/s,配合CH340的最高2Mbps的串口速率,经试验最高可达两百万波特率的无差错串口透传,为图像的实时传输提供了物理基础.
1.2 无线收发模块
系统选用nRF24L01P+PA模块,功率100MW.速率可达2Mbps,增强型的 ShockBurstTM模式可以自动的控制应答(ACK)与重发数据包[2],当发送方未接收到接收方的ACK应答信号时,自动的重新发送当前数据包,大大减小了丢包率的同时减轻了MCU的负担.
其工作模式由片上CE引脚与PWR_UP,PRIM_RX寄存器共同决定[3],与MCU的硬件连接见图2和图3.
图2 MK60与NRF的连接
图3 MK60与STM32的连接
1.3 图像采集模块
OV7725直接输出二值化后的像素,经DMA采集压缩后,在160x120的分辨率下一帧图像仅为2.4Kb.
2 系统的软件设计方案
当硬件接口配置好之后,接下来最主要的工作就是如何用软件来编程实现图像数据的采集、压缩、传输、接收、解压以及显示.
2.1 图像的采集
假设某行接收的五个图像数据为:0x80,0x01,0x55,0xAA,0x01则我们看到的见图4.
图4 40个像素图
1表示黑色,0表示白色,这样一个字节就可以表示8位像素,如0x80对应的二进制为10000000(2),如此就能把19200个像素点压缩为2400字节进行传输.
2.2 图像的无线发送
为了避免摄像头采集的时序与nRF24L01发送的时序相冲突,故采用采集一幅图像后再进行无线发送的方案.接收到的一帧图像数据为2400字节,需要在帧头加上0x55,帧尾加上0xAA,便于上位机的处理,故一帧图像总大小为2402字节,程序流程图见图5.
图5 nRF24L01发送程序流程图
2.3 图像的接收与传输至上位机
STM32F103C8T6循环查询nRF24L01寄存器,一旦有数据接收则立刻通过串口发送至CH340,CH340将TTL电平虚拟成USB串口.程序流程图见图6.
图6 nRF24L01接收和发送至上位机程序流程图
2.4 上位机对数据的处理与解压缩
上位机采用LABVIEW编写.LabVIEW采用可视化的G语言编写程序. LabVIEW集成了串口读取控件VISA与一系列数据显示控件,利用LabVIEW进行上位机的编写仅需考虑数据的处理,大大提高了开发效率.对串口进行数据操作需要安装VISA支持[4].
从串口读取到的数据为流的形式,故需要设置一个大于一帧图像的数据缓冲区,并配置串口波特率为2000000,读取停止符为0xAA.
当接收遇到接收停止符0xAA时可视为接收到一帧图像,但此时需要检测接收到的数据总长度是否为2402个字节,同时检测包头数据是否为0x55,若判断两个条件成立则可视为这是一帧完整的图像数据.串口数据流帧的读取与有效性判断见图7.
图7 帧有效性判断
图8 图像数据的解压缩与显示
判断为有效帧后就可进行图像数据的解压缩与显示,将一个字节的数据解压为二进制的二维布尔数组转换并经过绘图控件将图像显示出来,当数据源源不断地传至上位机,图像控件就会不断地刷新数据,形成视频流.图像的解压与显示见图9.经实验最大可达27帧每秒的速率,显示效果见图9.
图9 图像的显示与处理
3 结束语
本设计利用计算机CPU高主频的优势,提出用nRF24L01结合STM32,实现了一种低成本无线图像传输方案,图像数据可在上位机进行任意的处理,例如赛道模式识别,实时获取机器学习所需的训练数据集,经试验测试,效果良好.
参考文献:
[1]Texas Instruments. STM32F103C8T6 Data Sheet[EB/OL]. http://www.st.com, 2016.
[2]Nordic nRF24LU1+ Data Sheet[EB/OL]. http:// www.nordicsemi.com, 2016.
[3]叶鹏,陈星,张华. 基于MCU和nRF24L01的图像无线传输设计[J]. 机电产品开发与创新,2013,(3):89-91.
[4]吕向锋,高洪林,马亮,等. 基于LabVIEW串口通信的研究[J]. 国外电子测量技术,2009,(12):27-30,42.