基于STM32的电路板通信方式检测系统设计*
2021-10-21刘光硕张路刘海波邓自宁
刘光硕 张路 刘海波 邓自宁
北方民族大学 计算机科学与工程学院 宁夏 银川 750000
引言
随着嵌入式技术和通信技术的发展,电路板被广泛运用到各个行业。随之而来的电路板检测技术也变得越来越重要,它影响各行各业的发展,其中电路板通信方式的检测显得尤为重要。它承担着传输数据的重要作用,如果出现问题,整个系统将会瘫痪。由于常用的通信方式不是插电即用,无法通过检测电气信号来判断其好坏,所以现有的检测仪器,如万用表、示波器以及ICT在线监测仪器等都无法很好地实现对通信方式的检测。本文介绍了对常用通信方式进行二次开发形成一个固件库,利用固件库中的接口检测通信方式。该固件库中包含了ZIGBEE[2]、WIFI[1]、LORA[3]等常用通信方式的设备初始化、设备参数以及数据传输等方法。用户通过调用上述方法实现检测仪器与通信方式的无线连接,进而检测通信方式是否出现故障。
1 器件选型
1.1 中控芯片
本系统选用ST公司出品的STM32F1系列芯片STM32F103 ZET6作为中控芯片。该芯片拥有体积小,功能强以及开发简单的特点。芯片提供了5路串口,可供系统同时连接5种通信方式。F1系列芯片的开发采用标准硬件库,通过硬件库提供的接口实现系统开发,方便快捷。
1.2 LORA模块
LORA模块选择ATK-LORA-01。模块具有广播与数据监听的功能将模块地址设置为 0xFFF,可以监听相同信道上的所有模块的数据传输,发送的数据,可以被相同信道上任意地址的模块收到,从而起到广播和监听的作用。
模块设计是采用高效的ISM 频段射频 SX1278 扩频芯片,模块的工作频率为410~441Mhz,以1Mhz频率为步进信道,共32个信道,可通过 AT 指令在线修改串口速率,发射功率、空中速率、工作模式等各种参数,并且支持固件升级功能。
ATK-LORA-01 模块具有: 体积小、 灵敏度高、 支持低功耗省电的优点。
1.3 Wi-Fi模块
Wi-Fi模块选择ATK-ESP8266。ATK-ESP8266 是正点原子团队推出的一款高性能的 UART-WiFi(串口-无线)模块,ATK-ESP8266 板载了正点原子团队自主开发的 ATK-ESP-01 模块,该模块通过FCC、CE认证,可直接用于产品出口欧美地区,ATK-ESP8266模块支持3种工作模式,分别是STA模式、AP模式以及STA+AP模式。该模块可以通过AT指令对模块的功能进行修改,响应成功后会返回OK。该模块的频率范围为2.402~2.480Ghz,空中速率是1Mbps,工作电压为2V到3V,通过密码连接配对、数据加密[4]。
除此之外,ATK-ESP8266的开发资料较为全面,使用广泛,有利于学习和使用。
1.4 BLE模块
BLE模块选用ATK-BLE01,支持一对多广播、iBeacon功能、微信摇一摇周边定位,支持无线唤醒和串口唤醒,支持2.0~3.6V直流电压供电范围,模块集邮票孔和排针焊接孔, 排针焊接孔方便用户测试,支持模块发射功率设置,范围:-14dBm到+8dBm,支持多种天线形式:板载天线、外置 IPEX 天线座、外置天线,支持AT指令配置参数,支持本地固件升级[5]。
2 系统软件设计
软件设计分为两大部分,第一部分是主流通信方式设备初始化,设备连接以及数据发送等方法的二次开发。第二部分是人际交互与串口的设计。
第一部分:Wi-Fi、BLE和LORA通信方式都有自己的使用程序,包括设备初始化、发送指令、发送数据、获得IP和恢复出厂设置等。在这一部分需要继承3种通信方式的使用程序形成常用通信方式固件库,通过调用固件库中的接口达到快速、方便连接通信模块目的。
第二部分:在上一部分中介绍了相关通信方式的模块,为了增加通用性,本系统通过LVGL设计串口界面,利用串口界面设置串口参数和通信参数,将参数通过串口传送给外接通信方式,可以为简单的通信方式进行初始化[6]。
系统运行时先进行初始化,包括ZIGBEE、BLE、WIFI以及LORA设备的初始化,初始化完成后根据用户选择通信方式进行检测,在选择BLE时,系统进入下一步,根据系统提示,用户选择是否使用串口检测,使用串口检测时,系统要进行串口初始化程序,然后在串口检测界面进行数据输入,用户输入完成后,系统根据用户设置的数据进行设备检测。若是不选择串口检测,系统会进入BLE设置界面,在BLE设置界面设置蓝牙的相关参数,之后开始扫描蓝牙,进行蓝牙配对,蓝牙配对成功后,进行数据传输,检测是否能够进行通信,若是能够进行通讯则说明BLE设备正常[7]。
Wi-Fi、LORA与上述模块操作基本类似,Zig Bee模块与上述不同,现下使用的Zig Bee模块是协调器与终端的组合,终端采集数据,将数据发送给协调器,中控芯片通过协调器得到终端发送的数据,所以在检测Zig Bee模块时,无法使用模块搜索的方式,只能通过串口进行检测,虽然Zig Bee协调器中封装了协议,但是与中控芯片的通信是通过串口透明传输进行的,所以只需要设置串口参数,连接协调器即可,如果能够检测到数据则说明模块正常,检测不到数据则说明设备损坏。
如图1所示,Zig Bee、BLE、Wi-Fi以及LORA模块是同时连接在仪器上面的,所以在开发时要注意串口的使用。以上四种通信方式都是通过串口与单片机相连接,F1系列芯片串口数量存在不足的情况,本系统为拓展串口数量,通过软件模拟的方式,将普通的IO口模拟成为串口,通过模拟的串口实现多种通信方式的连接[8]。
图1 检测流程图
为了更好地进行人机交互,本系统使用LVGL作为GUI来构建人机交互界面。
littleVGL是刚开始流行的一个小型开源嵌入式GUI库,具有界面精美,消耗资源小,可移植度高,响应式布局等特点,全库采用纯C语言开发,而且 littleVGL 库的更新速度非常快,随着 littleVGL 的认知度越来越大,官方资料也逐渐丰富起来。LVGL具有非常丰富的内置控件,像buttons、charts、lists、sliders、images等,支持多个和多种显示设备,例如同步显示在多个彩色屏或单色屏上,为加速GUI设计,提供教程、案例和主题,支持响应式布局,可以缩小到最小内存(64 kB Flash,16 kB RAM),支持PC模拟器,硬件独立于任何微控制器或显示器。
LVGL的使用条件为16、32或64位的单片机(微控制器)或处理器,微处理器的主频最好高于16MHz,Flash/ROM:如果只用little VGL核心组件的话,则至少需要64kB的容量,如果想完整使用的话,最好保证 180kB 以上的容量[9]。
3 结束语
由于电路板通信方式不能通过简单的高低电平实现检测,所以只能通过对芯片编程实现通信功能来检测通信模块,本文利用STM32芯片对现有通信方式进行二次开发,以此应对主流通信方式的检测。除此之外,本系统还可以通过串口发送数据来实现通信模块的初始化,增加了系统的通用性。