购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5 辅助调试设备及其电路设计

本章前四节介绍了智能汽车主要电路模块的原理、电路设计,本节将介绍智能汽车辅助调试模块的电路设计。在智能汽车的基本硬件模块组装完成后,还需要花费大量的时间进行调试,从而让智能汽车的速度不断提升。在调试过程中需要对智能汽车的硬件、软件、机械等各方面暴露出来的不足进一步调整。如何才能快速、准确地找到智能汽车的不足,并且方便、快捷地进行调试呢?良好的辅助调试设备就可以解决上述问题。

若想快速、准确地找到智能汽车的不足,最好的方式就是让智能汽车自己说出自己的不足。与智能汽车良好的沟通就是辅助调试电路要实现的基本功能。在调试过程中,要收集智能汽车的反馈信息并根据反馈做出新的调整输入智能汽车,这个过程最简单的实现方式就是在线仿真。通过BDM或者JTAG进行在线仿真,通过监视变量的值来获取数据,然后更改程序后重新烧写至芯片来改变软件策略。但是,这种方式效率非常低下,需要反复进行烧写;并且在监视变量时智能汽车只能处于静止状态,无法动态地获得智能汽车运行过程中的具体情况。下面介绍多种调试方式,让智能汽车的调试过程更加方便、灵活。

2.5.1 液晶显示

液晶显示是智能汽车对外界反馈信息的最好方式,快捷且直观,可以将液晶显示模块与单片机连接,将要监视的数据发送到液晶显示模块上,从而可以脱离在线仿真监视变量的变化。最简单的显示模块为数码管,通过扫描数码管可以显示数字或者简单字母。但是,数码管占用面积较大且显示数据量较少,所以不推荐。在调试过程中推荐使用液晶显示模块。常用的液晶显示模块有LCD1602、LCD12864、NOKIA 5110液晶屏等。

1.LCD1602 液晶显示模块

LCD1602液晶显示模块如图2.5.1所示,它是最常用的液晶显示模块,在学习51单片机时应用较多。其使用方式简单、易于学习,显示单元为两行,每行16个显示单元,每个显示单元由5×7的点阵组成。LCD1602液晶显示模块可显示基本的ASCII码,但无法显示中文。由于其自身重量过重,建议仅在调车过程中使用,调试完毕后即摘下屏幕。

2.LCD12864 液晶显示模块

LCD12864液晶显示模块如图2.5.2所示。与LCD1602液晶显示模块类似,LCD12864广泛应用于51单片机学习中,相信广大读者也不会陌生。LCD12864由128×64的点阵组成,通过编程可以自定义显示区域。若使用带有中文字库的LCD12864,还可以显示汉字。通过编程还可以将LCD12864液晶显示模块应用于摄像头图像的实时显示。LCD12864的自身重量非常重,仅推荐读者在调试环节使用。

图2.5.1 LCD1602液晶显示模块

图2.5.2 LCD12864液晶显示模块

3.NOKIA 5110液晶显示模块

上述两种液晶显示模块使用广泛、应用资料丰富,是学习单片机基础的必备内容,但因为上述两款液晶显示模块的自身重量与占用面积都很大,使用起来有诸多不便,在此不再赘述。NOKIA 5110液晶显示模块自身重量轻、占用面积小、显示区域大且编程自由,推荐读者使用此液晶显示模块来获取智能汽车的调试信息。

如图2.5.3所示为NOKIA 5110液晶显示模块。从图中可以看出,这款液晶显示器的数据为串行输入,与LCD1602和LCD12864相比更节省单片机的资源。图中模块顶部与底部的两排引脚功能定义相同,在使用过程中根据需求接入一排引脚即可。这种设计为NOKIA 5110的安装提供了很大的灵活性。表2.5.1给出NOKIA5110模块的引脚定义。

图2.5.3 NOKIA5110液晶显示模块

表2.5.1 NOKIA5110液晶显示模块引脚介绍

NOKIA 5110液晶显示模块具有以下特点。

⊙84×48的点阵LCD,可以显示4行汉字。

⊙采用串行接口与主处理器进行通信,接口信号线数量大幅度减小,包括电源和地在内的信号线仅有8条。支持多种串行通信协议(如AVR单片机的SPI、MCS51的串口模式0等),传输速率高达4Mb/s,可全速写入显示数据,无等待时间。

⊙可通过导电胶连接模块与印制板,不需要连接电缆,用模块上的金属钩就可将模块固定到印制板上,非常便于安装和更换。

⊙LCD控制器/驱动器芯片已绑定到LCD晶片上,模块的体积很小。

⊙采用低电压供电,正常显示时的工作电流在200μA以下,且具有掉电模式。

基于NOKIA 5110液晶显示模块的上述特点,仅需要基本的I/O接口就可以驱动该液晶显示模块,无须特殊总线的接入,在设计单片机资源分配时可以更加灵活。

2.5.2 矩阵键盘

前文讲述了获取智能汽车信息的方案,在获取了智能汽车信息之后,需要对智能汽车内置的参数进行调整。调整参数的手段很多,这里推荐使用矩阵键盘。使用矩阵键盘占用的端口少且可获得的按键多,可以对按键进行编程实现丰富的交互功能。使用矩阵键盘来调整智能汽车的参数方便快捷,图2.5.4给出矩阵键盘的电路示例。

图2.5.4 矩阵键盘电路示例

利用微机原理、单片机原理及应用课程中学习的矩阵键盘扫描方式,可以方便、快捷地使用矩阵键盘。图2.5.4所示的电路是广大单片机初学者在学习过程中接触最多的电路,相关的程序资料都可以通过网络获取。由于矩阵键盘占用的空间较大,不建议将其集成到主板上;推荐将矩阵键盘模块(见图2.5.5)使用排线或者杜邦线与主板连接,在调试结束后拔下以免影响智能汽车的整体性能。出于方便的角度考虑,还可以购买矩阵键盘模块来实现智能汽车的调整。图2.5.6所示为薄膜式矩阵键盘模块。

图2.5.5 矩阵键盘模块

图2.5.6 薄膜式矩阵键盘模块

2.5.3 拨码开关

使用矩阵键盘预置参数时需要每次都连接键盘,而在实际比赛中临场调整策略时,使用键盘会浪费大量时间。若想要预置不同的比赛策略,并在比赛现场迅速地调整,推荐使用拨码开关。不同挡位的拨码开关如图2.5.7所示。

图2.5.7 不同挡位的拨码开关

如图2.5.8所示的拨码开关电路示例可以实现参数的预置。通过拨动拨码开关的挡位可以使某一路呈现高电平或者低电平。通过单片机的I/O口读入所有预置端口的数据,使用二进制数的位运算可以得到不同的二进制数。通过拨码开关预置的数字可以调整不同的比赛策略。

图2.5.8 拨码开关电路示例

从图2.5.8可以看到,使用上拉电阻可以拉高拨码开关左侧的电平,从而输入单片机的某一位就为高电平;若接通拨码开关的一位,则电平就会被拉低,因此单片机读入的就是低电平,从而可以读取一组8位二进制数,若按十进制转换使用,则可预置256组不同策略。当然,还可以给不同的位分配不同的功能分别进行预置。

值得一提的是,在使用部分高端单片机时,单片机的I/O接口内置了上拉功能,只需要在初始化I/O接口时开启上拉功能就可以实现单片机内部上拉,从而免去上拉电阻的使用,例如,K60单片机就可以实现内部上拉,从而无须上拉电阻即可使用拨码开关,其电路示例如图2.5.9所示。

图2.5.9 无上拉电阻的拨码开关电路示例

2.5.4 串口通信

上述调试手段都是用来实现人与智能汽车的直接交互的;而对于一些大型数据的分析,还需要计算机来进行。例如,将智能汽车采集的数据反馈到MATLAB中进行仿真等功能的实现,就需要智能汽车将数据实时地传送给计算机。实现智能汽车与计算机通信最简单易行的方式就是串口通信。由于恩智浦单片机都有串口通信模块(UART)功能,只需要初始化相关模块就可以使用通用的串口通信协议与计算机进行通信。大部分台式计算机都在主板上预留了串口通信要用的串行接口,也称COM口。使用串行接口可以直接将UART模块发送来的数据读入单片机。

图2.5.10和图2.5.11所示的传统串行接口通信线路在使用时需要使用专用的9针接口,而在智能汽车实现串口通信仅需RXD、TXD、GND这3条线即可,其他线路都是无效线路。在智能汽车主板上集成9针接口非常占空间;若没有集成9针接口而使用传统串行接口线缆,则每次都需要使用杜邦线跳线,使用起来非常不方便。为了解决上述问题,推荐使用USB转串行接口的芯片来实现USB拓展串行接口的目的。

图2.5.10 计算机主板上的串行接口

图2.5.11 串行接口通信电缆

常用的USB转串口的芯片为CH340T,如图2.5.12所示。CH340T芯片集成驱动,可以即插即用,经过实际测试在Windows XP和Windows 7中都没有问题。使用此方案不但解决了台式计算机使用不便的问题,还使得没有预留串口的笔记本电脑实现了与单片机的串口通信。

图2.5.12 CH340T(SSOP-20)

图2.5.13所示为CH340T的原理示意。从图中可以看出,CH340T需要晶振才能正常工作。在实际测试中,只有连接12Mb/s晶振时CH340T才能正常工作,连接其他频率的晶振都是无效的。其中,D + 、D - 分别对应USB接口中的数据线路,TX与单片机的RXD相连接,RX与单片机的TXD相连接,实现了USB到串口的转换。

图2.5.13 CH340T USB转串口电路示例

由于CH340T芯片只有SSOP封装,其引脚间距不足1mm,若使用一般的电烙铁焊接可能会导致引脚之间短路或者虚焊,从而影响数据的正常通信。针对此问题,读者可以购买网上的成品转换模块来使用。成品模块如图2.5.14所示。

图2.5.14 CH340T USB转串口模块

2.5.5 无线通信

使用串口通信可以将智能汽车采集到的数据发送给计算机进行处理,然而其弊端在于线缆的限制。由于通信过程必须使用线缆连接,因此无法采集到智能汽车运行过程中的动态数据。为了摆脱线缆的束缚,可以使用无线通信方式。

常用的无线通信方式有2.4G无线通信模块NRF24L01、蓝牙模块HC-05等。图2.5.15所示为NRF24L01模块的实物照片。

图2.5.15 NRF24L01模块

2.4G无线通信模块NRF24L01使用SPI协议与单片机通信,则两个模块要想进行通信必须有两个单片机提供SPI协议才能突现。这就意味着若使用NRF24L01模块无线传输智能汽车采集到的数据就需要在智能汽车上安装一个NRF24L01模块,通过SPI协议驱动模块发送数据,接收端需要一款单片机提供SPI协议驱动NRF24L01模块接收数据,并且通过串口方式发送给计算机。这种方式虽然实现了无线通信,但是在数据传输环节需要的模块较多,数据需要经过转换才能被计算机接收,非常烦琐。若使用蓝牙模块实现无线数据通信,则仅仅需要两个蓝牙模块就能实现。

图2.5.16 HC-05 主从一体蓝牙模块

蓝牙模块的通信原理非常简单,在蓝牙配对之后,数据通信就相当于串口通信。两个蓝牙模块之间就相当于有一条无形的串口线缆在通信。单片机驱动蓝牙模块无须使用SPI协议,仅仅需要使用UART模块,像之前使用CH340T发送数据给计算机一样将数据发送给蓝牙模块,蓝牙模块就会自动将数据发送给配对的蓝牙模块。接收端通过CH340T模块可以将蓝牙模块接收到的数据以串口通信的形式发送给计算机。使用蓝牙模块的优点在于操作简单、无须SPI协议的支持,但是带宽有限、传送的数据量不是很大。

如图2.5.16所示为网络上出售的HC-05主从一体蓝牙模块。图中上层芯片及电路为厂家出售的原始模块,外边的底板为商家自制的拓展接口部分。由于蓝牙模块封装特殊,没有合适的接口与之直接相连,因此商家自制了转接底板与原厂模块焊接,引出了V CC 、GND、RXD、TXD这4个通信引脚,其通信协议与串口完全匹配,使用时仅须先按照模块说明书进行蓝牙配对后,其他操作与串口通信的方式完全相同。值得一提的是,该模块还可以与笔记本电脑内置的蓝牙模块直接配对,从而仅仅需要一个与智能汽车上的单片机连接的蓝牙模块便可以实现智能汽车与计算机的无线串口通信,十分方便。

各大网店出售的蓝牙模块的价格大约在40元,而原厂的蓝牙板只需要26元就可以买到。所以建议有条件的读者可以直接购买原厂蓝牙板配合自制的外围电路来实现无线通信。DIY可以节省部分资金,还可以锻炼动手能力,何乐而不为呢?

由于智能汽车大赛组委会规定智能汽车在运行过程中不可以人为干预,因此无线通信手段仅仅可以用于调试阶段,切勿将无线通信模块集成于智能汽车的主板上。

2.5.6 SD卡读写

为了解决无线通信带宽有限、数据无法大量传输的问题,可以使用写SD卡的方式绕过实时发送环节。在智能汽车运行过程中将数据高速写入大容量的SD卡中,在运行结束后将SD卡内的数据读入计算机进行分析。使用这种方式同样可以记录智能汽车的动态特性,还解决了因为带宽限制无法获取足够数据的问题。现在的SD卡读写协议常用的有SDIO协议及SPI协议。在智能汽车调试过程中,可以根据单片机的情况来选择合适的协议进行SD卡的读写。Micro SD卡是选用最多的SD卡,主要由于其外形小、占用空间小,同时还有良好的读写速度。为了实现读写SD卡,部分商家出售的单片机核心板上已经集成了SD卡的卡槽,若没有集成卡槽,则可以购买读写卡模块进行SD卡的读写操作。

图2.5.17为Micro SD卡读写卡模块,使用此模块与单片机对应的引脚相连接就可以实现SD卡的读写操作。使用读写卡模块的好处在于可以仅在调试阶段进行读写卡操作,比赛中可以摘除模块来减少车身重量,同时也避免了SD卡槽占用空间。

图2.5.17 Micro SD卡读写卡模块

SD卡槽与单片机的连接电路非常简单,若需要自行DIY读写卡电路,请自行查找资料设计。

至此,本章的前5节已经将智能汽车制作过程中常用电路模块的原理及可以使用的成品模块介绍完了。读者可以根据前5节介绍的原理自行设计自己的智能汽车整体电路,而完成整体电路的设计后就可以进入本章后两节的电路实体设计环节。 gR67c0/sfmsEbJ3RYX6FfD39PZJqaO7hdOSqTkXIT+W6q2ZsphipURJG2xile/Vt

点击中间区域
呼出菜单
上一章
目录
下一章
×