CC3200 SimpleLink WiFi模块的高速图像传输

2017-04-25 06:04:25朱为闻时光滕璞骏
单片机与嵌入式系统应用 2017年4期
关键词:局域网IP地址串口

朱为,闻时光,滕璞骏

(1.东北大学 机械工程与自动化学院,沈阳 110819;2.东北大学 信息科学与工程学院)

CC3200 SimpleLink WiFi模块的高速图像传输

朱为1,闻时光2,滕璞骏2

(1.东北大学 机械工程与自动化学院,沈阳 110819;2.东北大学 信息科学与工程学院)

针对全国大学生智能汽车创新竞赛中,视觉组通过串口发送图像来调试车模的过程中出现的速度慢问题,提出了基于TI CC3200 SimpleLink WiFi模块的图像高速传输方案,并进行了实验验证。利用WiFi模块通过网络将单片机采集到的图像数据发送给计算机,进而显示为图像。实验结果表明:本方案可以高速并准确地传输图像,实时性高,可以让智能车在运行的同时发送图像,极大地提高了调试效率。

CC3200 SimpleLink;WiFi;图像传输;MKL26;智能车

引 言

在智能车竞赛的视觉组中,路径识别算法的调试方法主要是通过USB转串口将单片机采集到的图像数据发送到电脑上位机,并还原为图像。由于串口的传输速率低,实时性不高,所以只能在智能车静止或速度极低时传输图像。而智能车在运行时因为速度快以及摄像头晃动等原因,采集并处理后的图像与静止时是不一样的。串口的速率低,无法查看实时图像,给图像调试增加了困难。而目前WiFi网络的传输速率已达数百兆,远远超过串口的速率。将WiFi技术运用到智能车中,可以高速地传输实时图像。本文基于TI WiFi模块和智能车平台进行了实验,验证了智能车通过WiFi高速传输实时图像的可能性。

1 系统硬件组成

1.1 智能车平台

本文设计了一套完整的智能车系统,包括主控制器、图像采集模块、电机驱动模块、转向舵机模块、速度反馈模块、串口调试模块以及电源管理模块[1]。

主控制器选用的是恩智浦公司的Kinetis系列MCU KL26。Kinetis L系列产品以Cortex-M0+为内核,功耗非常低,但性能却很高,在超低功耗运行(VLPR)模式下的功耗仅为50 μA/MHz,具有多种睡眠模式,可根据不同的中断唤醒源从睡眠模式迅速切换到工作模式,待处理完数据之后再迅速返回到睡眠状态,从而延长电池的使用寿命。摄像头用的是智能车竞赛中深受大家喜爱的硬件二值化摄像头,车模使用的是比赛组委会指定的C车模。

串口模块用于系统的一般调试,如打印小车状态信息等。由于选用WiFi模块进行图像的传输,我们通过SPI通信方式将图像传输给WiFi模块。在PCB设计时,预留出了SPI通信接口。本文重点介绍通过WiFi模块传输实时图像的过程,其他模块不再详细介绍。智能车系统整体结构如图1所示。

图1 智能车系统框图

1.2 WiFi模块

WiFi技术是一种无线接入技术,全称为无线保真技术(Wireless Fidelity)。WiFi技术不需要铺设物理线路,应用非常方便,而且通信速率高,应用门槛低,越来越受到人们的重视。

SimpleLink CC3200器件是业界第一个配备了内置WiFi功能的无线MCU。CC3200由3大系统组成:应用MCU子系统、WiFi 网络处理器子系统、电源管理子系统。应用MCU子系统包含一个运行频率为80 MHz的行业标准ARM Cortex-M4内核,同时还配有多种外设;WiFi网络处理器子系统包含一个额外的专用ARM MCU,用于WiFi功能,完全不需要MCU的参与;电源管理子系统包括支持广泛电源电压范围的集成直流-直流转换器[2]。本文使用的是核心板CC3200-LaunchXL。此核心板体积小,并且留出许多引脚,非常适合用于智能车。

2 系统软件设计

2.1 总体设计

本文要实现使用WiFi模块进行图像的高速传输,必须保证每一个环节的数据传输速度都足够快。先由KL26通过DMA采集摄像头拍到的图像,处理后通过SPI与CC3200-LaunchXL进行通信,将图像数据发送至CC3200,CC3200接收到数据后通过WiFi发送给上位机,最后上位机对数据进行处理并显示为图像。流程图如图2所示。

图2 系统流程图

2.2 图像采集

KL26是飞思卡尔公司推出的一款超低功耗单片机,但性能却相当高,也是智能车比赛中常用的一款单片机之一。硬件二值化摄像头使用RTL级电路进行图像数据采集和二值化处理,大大减少了主控制器的工作量,并且获得了很高的图像采集速率。

图3 图像采集流程图

图像的采集过程主要依靠DMA完成。DMA全称叫直接内存存取(DIRECT MEMORY ACCESS),是一种高效的数据传输技术,它允许在外部设备和存储器之间直接读写数据,且不需要CPU的参与,整个数据传输过程都在DMA控制器的控制下进行。用DMA采集图像,效果比一般的读取I/O口效率高,大大地释放了CPU的资源,并且没有噪点。要完成图像对采集工作,重点是要把握好摄像头的工作时序。摄像头的图像采集是通过对摄像头的场、行中断的捕捉来完成的。场中断标志着一场图像的到来,行中断标志着一行图像的到来。程序中通过场中断判断一场图像的到来,PCLK中断触发DMA传输[3]。

采集工作主要分为以下几个步骤: (1) 初始化设置。(2) 打开场中断。(3) 中断触发DMA传输。其中,初始化设置又包括SCCB配置、DMA初始化、引脚中断初始化。图像采集流程图如图3所示。

2.3 SPI通信

SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI是一种同步的通信总线,它支持高速率和全双工。除此之外,它需要的芯片引脚较少,仅通过4根线就能完成高速的数据传输操作,既节约了芯片的引脚,又缩小了PCB的布局尺寸,因此SPI获得了越来越广泛的应用。KL26提供了两个SPI模块,SPI0和SPI1,CC3200-LaunchXL也留有SPI的接口。使用SPI通信协议,KL26和CC3200之间就能进行高速的数据传输了。

SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要4根线,如果只有一个从设备,3根线也可以。这也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。

MISO(SDI):主器件数据输入,从器件数据输出。

MOSI(SDO):主器件数据输出,从器件数据输入。

SCLK:时钟信号,由主器件产生。

CS:从器件使能信号,由主器件控制。

要使两个设备通过SPI进行通信,主从机的时钟极性、时钟相位配置必须一致[4]。本文以KL26作为主机,CC3200为从机,以10 Mbps的速率进行通信。主机部分程序如图4所示。

图4 主机KL26部分程序

2.4 WiFi传输

CC3200接收到图像数据后,需要通过WiFi将数据传送给计算机。WiFi 技术是基于802.11 协议的无线局域网接入技术,它利用接入点AP(Access Point)和无线网卡组成无线网络。传统的有线局域网和无线局域网通过AP进行连接, 因此任何一台装有无线网卡的计算机都可以通过AP 来分享网络资源[5]。要使CC3200和计算机通信,两者必须连结在同一网络接入点,即AP。计算机主动开启WiFi热点,即创建了一个AP,同时计算机被分配一个局域网IP地址。其他设备输入相应的ID和密钥,就可以连入此网络,同时也被分配一个IP地址。当知道对方的IP地址时,同一节点下的两个网络设备就能进行通信[6]。

WiFi通信协议主要有TCP协议和UDP协议。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,而UDP是无连接,不保证可靠的传输层协议。当传输的数据量较大,且进行一对一通信时,应采用传输更可靠的TCP协议,确保数据的准确性。由于本文传输图像对数据的准确性要求高,故采用TCP协议。

本文参考了TI官方给出的TCP_Socket例程,在程序中将CC3200设置为服务器,发送数据到固定端口(5001);计算机设为客户端,接收服务器端口的数据。计算机主动开启WiFi热点,它将被分配一个局域网IP地址。由于将计算机作为客户端,只需接收服务器发送来的数据,故计算机的局域网IP地址在实际中并未用到。CC3200连接上WiFi热点后,也被分配一个固定的局域网IP地址,并通过串口打印到计算机屏幕上。上位机只需设置好服务器(CC3200)的IP地址和数据端口号,连接上服务器后就可以接收服务器发送过来的数据。将CC3200设置为服务器的好处是在其连接上热点后可以把它本身的IP地址打印出来,即使下次连接时IP地址改变了,也不用修改CC3200的程序并烧录进去。通信过程如图5所示。

图5 CC3200与计算机通信流程图

2.5 显示图像

上位机接收到数据后对其进行处理,通过识别固定帧头可以有效地判别出一帧完整的图像数据,然后将其描绘出来,并显示在软件界面上,使用者就可以查看实时图像了。

3 实验结果

由于硬件二值化摄像头传输的数据是一个字节存储8个像素,所以大小为160×60的图像占用的实际内存仅为普通摄像头的八分之一。KL26传输一帧图像仅需2 ms。实验中发现当SPI速率大于1 Mbps时,CC3200开始丢失数据。经过分析,将CC3200从纯粹的SPI接收改为DMA ping-pong模式接收,建立两个缓冲区,让其交替工作,明显改善数据丢失的情况(参考TI官方sdk spi_demo_DMA例程)。当SPI速率为10 Mbps时,接收到的数据也是完全准确的。

由于通过WiFi传输数据,所以需要专门的上位机,软件来接收以及处理WiFi网络的数据。笔者用C#语言自主开发了一款智能车调试上位机用以接收WiFi的数据并显示为图像。最终效果如图6所示。

High-speed Image Transmission Research Based on CC3200 SimpleLink WiFi Model

Zhu Wei1,Wen Shiguang2,Teng Pujun2

(1.College of Mechanical Engineering and Automation,Northeastern University,Shenyang 110819,China; 2.College of Information Science and Engineering,Northeastern University)

Aiming at the problem of slow speed in the course of debugging the car model by the visual group sending images through the serial port in the national college students intelligent vehicle innovation contest,an image high-speed transmission scheme based on TI CC3200 SimpleLink WiFi module is proposed.The system uses the WiFi module through the network to collect the image data,and sends to the computer,and then displays the image.The experiment results show that the scheme can transmit images high-speedly and accurately,the smart car is running at the same time is sending the images,that greatly improves the debugging efficiency.

CC3200 SimpleLink;WiFi;image transmission;MKL26;intelligent vehicle

图6 调试上位机显示图像

TN919.85

A

猜你喜欢
局域网IP地址串口
浅谈AB PLC串口跟RFID传感器的通讯应用
铁路远动系统几种组网方式IP地址的申请和设置
基于VPN的机房局域网远程控制系统
电子制作(2019年16期)2019-09-27 09:35:04
基于802.1Q协议的虚拟局域网技术研究与实现
电子制作(2017年17期)2017-12-18 06:40:48
局域网性能的优化
电子制作(2017年8期)2017-06-05 09:36:15
基于SNMP的IP地址管理系统开发与应用
黑龙江电力(2017年1期)2017-05-17 04:25:16
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
地矿测绘(2015年3期)2015-12-22 06:27:26
基于并行控制的FPGA多串口拓展实现
用统一身份认证解决IP地址的盗用