[架构之路-19]:目标系统 - 硬件平台 - 案例1 - 用单片机STM8/STM32搭建目标系统(以无线传感器LoRa终端为例)
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[架构之路-19]:目标系统 - 硬件平台 - 案例1 - 用单片机STM8/STM32搭建目标系统(以无线传感器LoRa终端为例)相关的知识,希望对你有一定的参考价值。
目录
5.3 目标系统软件架构(main函数和就是Lora的协议栈)
前言:
STM8/STM32称为单片机,但并不意味着只有要STM32,就可以构建一个目标系统,STM8/STM32只集成了大量的外设控制器,但并没有外设本身。因此,要构建特定应用的目标系统,除了STM8/32之外,还需要满足特定应用系统要求的实际外设,如果GPS, 如Lora无线终端等,以及与外设控制器向对应的驱动程序,还需要特定外设相关的应用程序。本文就是探讨如何用STM8/STM32搭建目标系统。
第1章 用STM8/STM32搭建目标系统的总体步骤
(1)搭建的LoRa终端的系统需求和目标
(2)构建LoRa终端的软硬件开发环境
(3)构建LoRa终端的目标系统的硬件
(4)构建LoRa终端的目标系统的软件
第2章 搭建的LoRa终端的系统需求和目标
2.1 物联网系统分层架构
STM8/STM32主要应用低功耗的物联网终端中,如下是物联网的网络架构
物联网总体的系统组成以及分层架构:系统架构图、感知层、网络层、平台层、应用层。
详细信息可参考:
物联网LoRa系列-1:物联网系统分层架构_文火冰糖的硅基工坊的博客-CSDN博客_感知层网络层应用层
2.2 搭建的LoRa终端的系统需求和目标
(1)搭建一个低功耗的LoRa的通用终端,用于远距离传输传感器采集到数据。
(2)能够支持多种传感器信息的采集,包括温度、湿度、压力、GPS定位等。
(3)LoRa的终端主要用于LoRa协议的学习、开发调试,并非最终产品,因此暂不考虑终端相关的机械、外观、生产等。
(4)尽可能的利用开源的、通用的软件和硬件平台实现。
(5)支持LoRa MAC层标准,便于接入到第三方LoRa服务器。
2.3 设计Lora终端的软硬件系统
物联网LoRa系列-3:LoRa终端搭建的总体思路、步骤与架构_文火冰糖的硅基工坊的博客-CSDN博客_lora环境搭建
LoRa终端开发版提供三类的对外接口:
(1)外设传感器接口
传感器类型:温度、湿度、速度、液压、GPS定位、摄像头、三轴传感器等。
设备接口:采用单片机MCU的外部设备总线,包括GPIO、SPI、I2C、串口、工业CAN总线、显示屏LCD总线。
(2)LoRa的射频天线接口
用于发送和接收LoRa的射频电磁波信号,天线的长度与电磁波的波长相关。
(3)LoRa主机调试接口
串口:考虑到大量的笔记本没有提供串口,因此需要通过串口转USB芯片,提供USB串口
仿真接口:用于下载目标程序和调试目标程序,仿真器接口包括:Jtag接口(10 pin)、SWD接口(20 pin)、SWIM接口(4 pin)
第3章 搭建主机开发环境
物联网LoRa系列-8:LoRa终端应用程序开发环境的搭建_文火冰糖的硅基工坊的博客-CSDN博客
(1)主机硬件开发环境:
Protel99SE:用于开发原理图和PCB.
(2)主机调试串口程序:
用于查看目标系统的程序执行的串口打印结果,如secureCRT等,这里的工具很多。
(3)MCU开发环境:
用来开发目标程序,包括编辑、编译、汇编、连接,特别是需要一个交叉编译器。
这里工具有MCU硬件厂家提供的集成开发工具,如ST Visual Develop,也包括一些第三方厂家开发的通用继承开发环境,如IAR for ARM。
这是通过集成开发工具的交叉编译编译出来的目标代码,包括中间每个源文件的目标代码,还包括最终连接后的在目标板上可执行程序。
(4)目标系统的目标代码:
这是通过集成开发工具的交叉编译编译出来的目标代码,包括中间每个源文件的目标代码,还包括最终连接后的在目标板上可执行程序。
(5)目标系统的源代码:
源代码是通过集成开发工具的工程文件来管理和维护的。
包括MCU芯片厂家提供的MCU lib和外设接口驱动程序,也包括传感器设备的驱动程序、LoRa芯片驱动程序、LoRa MAC层协议。这些程序都不需要我们重新开发,可以利用芯片厂家提供的开源代码。而用户定制程序,属于代码集成,与业务相关和硬件电路板相关,需要我们开发。为了降低这块程序的开发量,通常可以基于开发板厂家提供的demo程序开发或基于LoRa芯片厂家提供的demo程序进行开发。
(6)调试工具的选择:JTAG
第4章 构建LoRa终端的目标系统的硬件
4.1 基本步骤
(1)LoRa射频芯片的选择
(2)MUC芯片的选择
(3)LoRa终端开发板的选择(可以通过淘宝购买)
物联网LoRa系列-6:LoRa终端开发板硬件的搭建_文火冰糖的硅基工坊的博客-CSDN博客
4.2 目标硬件示意图
(1)射频部分
ASR6505模组把STM8 MCU和射频芯片SX1262进一步集成在一个封装的模组中。简化了硬件的设计 。
(2)传感器部分
可以通过I2C、SPI总线、GPIO集成大量的传感器外设。
4.3 ASR6505-EVB开发板的实物图
LoRa点对点通信必需硬件列表如下:
1) ASR6505-EVB 2个:在LoRa终端与LoRa基站通信前,用于在两个终端间进行点对点通信。
2) 天线 2根:两个终端的天线
3) USB线 2根:两个终端的USB线
4) ST link V2仿真下载器 1个:用于下载程序和在线调试程序,不需要给每个终端配置仿真器。
5) PC机 1台:开发主机
4.4 ASR6505-EVB开发板的原理图
第5章 构建LoRa终端的目标系统的软件
5.1 基本步骤
(1)来自于LoRa官网上的开源代码
(2)来自MCU厂家官网上的开源代码
(3)来自集成开发工具提供的内置的开源库
(4)来LoRa终端开发板提供商(淘宝)提供的非开源代码
(5)自己写的特定应用的demo和业务代码
5.2 目标系统软件构建架构
(1)MCU Lib库:芯片厂家通过集成开发环提供
- C语言库
- MCU的bootloader
MCU库,为用户提供了一个开发平台,应用程序员只需要自己的main函数即可。
有了MCU库,用户就可以不用关系CPU核是如何初始化的,也不需要关注bootloader是如何加载的。
(2)MCU外设控制器程序
- MCU外设控制器驱动程序
有了MCU外设控制器程序,应用程序就可以访问单片机提供的各种外设控制器了。
极大的方便了应用程序与各种传感器建立通信,获取传感器的信息 。
(3)LoRa芯片驱动程序
MCU lib提供了单片机内部的外设控制器的驱动程序,并没有提供外设本身的驱动程序。
因此,需要外设芯片厂家提供相关的外设驱动程序,在此案例中,是Lora芯片的驱动程序,各种传感器驱动程序。
(4)用户应用程序
在这个案例中,main函数和就是Lora的协议栈。
5.3 目标系统软件架构(main函数和就是Lora的协议栈)
物联网LoRa系列-26:LoRaWAN Class A/B/C类型终端的软件架构_文火冰糖的硅基工坊的博客-CSDN博客
在上图中:
(1)main函数是应用程序的入口
(2)main函数负责调用Lora的协议栈,从STM32芯片的角度来看,他们也是应用程序。
(3)从Radio层以及之上的软件,有Lora提供
(4)MCU层:单片机厂家的集成开发环境提供
备注:
- 在此单片机应用中,并没有uboot,也没有Linux操作系统。
- bootloader被隐藏在集成开发环境中,基本不需要应用程序员关注。
- main函数是应用程序的入口,集成开发环境自动把隐藏的bootloader和main函数关联起来。
以上是关于[架构之路-19]:目标系统 - 硬件平台 - 案例1 - 用单片机STM8/STM32搭建目标系统(以无线传感器LoRa终端为例)的主要内容,如果未能解决你的问题,请参考以下文章
[架构之路-20]:目标系统 - 硬件平台 - 嵌入式系统硬件电路基础:架构设计流程总线外设基本电路编码
[架构之路-14]:目标系统 - 硬件平台 - CPUMPUNPUGPUMCUDSPFPGASOC的区别
[架构之路-17]:目标系统 - 硬件平台 - ARM CPU架构与系列选型
[架构之路-12]:目标系统 - 硬件平台 - 单核CPU的架构与基本工作原理