嵌入式系统学习 您所在的位置:网站首页 gec工程 嵌入式系统学习

嵌入式系统学习

2024-07-09 23:22| 来源: 网络整理| 查看: 265

一、前言

        嵌入式系统即嵌入式计算机系统,被广泛应用在的微控制器领域(如工业控制、汽车电子、数据采集、测控系统、家用电器、现代农业等)和应用处理器领域(如平板电脑、手机、电子图书等),需要开发人员同时具有硬件、软件及行业领域相关知识。相较于其他编程语言或软件的学习,嵌入式的入门会更难得多,需要对开发的硬件和适配的操作系统有一定的知识储备,并且不同主机的硬件水平也不同,很难做到完美复刻。

        嵌入式系统现在依然是一个主流技术,许多岗位对此仍有极大的需求,因此早日掌握嵌入式系统相关技术是非常有必要的。参考的教材是由苏州大学王宜怀教授主编的《嵌入式技术基础与实践(第6版)—基于STM32L431微控制器》(清华大学出版社),因其配备有AHL-STM32L431微控制器和相关电子资源,对小白入门极其友好。学习笔记将以理论学习为主线配套上机为支线,有相同学习计划的伙伴可以一起加入学习讨论!

(建议大家有条件的话购买配有微处理器的正版书籍,二手书和复印版基本没有微处理器,有微处理器才能完成本笔记的所有步骤!!!)

二、本周学习任务

下面的任务是邀请你和我一起实现的,加油吧!(如果实在没时间或者太懒,可以直接翻到对应目录参考)

①整理归纳嵌入式系统常用术语(包括中文名、英文缩写、英文全称),把它列成一个表格;

        这项任务只需要你打开一个能做表格的软件/网站,参照目录三完成任务。笔记将原文对常用术语的介绍与说明进行了摘录,方便学习时理解术语的意思,结合表格记忆。

②编译、下载与运行书中p4、5所示的第一个嵌入式程序。

        这项任务需要你装上AHL-STM32L431微处理器相应的环境AHL-GEC-IDE,下载好配套的电子资源(含有第一个嵌入式程序的代码),跟着目录四的步骤完成任务。环境安装地址和电子资源下载地址如下,快去下载吧!

AHL-GEC-IDE集成开发环境:http://116.62.63.164:45688/AHL-GEC-IDE(4.55).rar

配套电子资源:http://116.62.63.164:45688/AHL-MCU6-V2.0-20240118.rar

三、常用术语 3.1 与硬件相关

1.封装

集成电路的封装是指用塑料、金属或陶瓷等材料把集成电路封在其中以保护芯片,使芯片与外部世界连接。

常用的封装(Package)形式可分为通孔封装和贴片封装两大类。

通孔封装主要有:单列直插(Single-in-line Package, SIP)、双列直插(Dual-in-line Package, DIP)、Z字型直插式封装(Zigzag-in-line Package, ZIP)等。

贴片封装主要有:小外形封装(Small Outline Package, SOP)、紧缩小外形封装(Shrink Small Outline Package, SSOP)、四方扁平封装(Quad-Flat Package, QFP)、塑料薄方封装(Plastic-Low-profile Quad-Flat Package, LQFP)、塑料扁平组件式封装(Plastic Flat Package, PFP)、插针网络阵列封装(Ceramic Pin Grid Array Package, PGA)、球栅阵列封装(Ball Grid Array Package, BGA)等。

2.印制电路板

印制电路板(Printed Circuit Board, PCB)是组装电子元件用的基板,是电路原理图的实例化。

PCB的主要功能是:

①提供集成电路等各种电子元器件固定、装配的机械支撑;

②实现集成电路等各种电子元器件之间的布线和电气连接(信号传输)或电绝缘;

③为自动装配提供阻焊图形,为元器件插装、检查、维修提供识别字符和图像等。

3.动态/静态可读写随机存储器

动态可读写随机存储器(Dynamic Random Access Memory, DRAM),由一个 MOS 管组成一个二进制存储位。MOS管的放电导致表示“1”的电压会慢慢降低。一般每隔一段时间就要控制刷新消息,给其充电。DRAM价格低,但控制繁琐,接口复杂。

静态可读写随机存储器(Static Random Access Memory, SRAM),一般由4个或者6个MOS管构成一个二进制位。当电源有电时,SRAM不用刷新,可以保持原有的数据。

4.只读存储器

只读存储器:数据可以读出,但不可以修改,通常存储一些固定不变的信息,如常数、数据、换码表、程序等。

ROM有固定ROM、可编程ROM(即PROM)和可除ROM(即EPROM)3种。

可编程ROM的编程原理:通过大电流将相应位的熔丝熔断,从而将该位改写成0,熔丝熔断后不能再次改变,所以只能改写一次。

EPROM(Erase PROM):是可以擦除和改写的ROM,用MOS管代替了熔丝,因此可以反复擦除、多次改写。擦除是用紫外线擦除器来完成的,很不方便。

E^{2}PROM或EEPROM(Electrically Erasable Programmable Read-Only Memory):是用低电压信号来完成擦除,比EPROM更有效率。

5.闪速存储器

闪速存储器:简称闪存,是一种新型快速的EEPROM。由于工艺和结构上的改进,闪存比普通的E^{2}PROM的擦除速度更快,集成度更高。其最大的优点是系统内编程,即不需要另外的器件来修改内容,擦写操作必须通过特定的程序算法来实现。尽管闪存是系统内编程的,但仍然没有RAM使用起来方便。

6.模拟量与开关量

模拟量:指时间连续、数值也连续的物理量,如温度、压力、流量、速度、声音等。

开关量:指一种二值信号,用两个电平(高电平和低电平)分别来表示两个逻辑值(逻辑1和逻辑 0)。

3.2 与通信相关

1.并行通信

并行通信:指数据的各位同时在多根并行数据线上进行传输的通信方式,数据的各位同时由源到达目的地;适合近距离、高速通信;常用的有4位、8位、16 位、32 位等同时传输。

2.串行通信

串行通信:指数据在单线(电平高低表征信号)或双线(差分信号)上,按时间先后一位一位地传送,其优点是节省传输线,但相对于并行通信来说,速度较慢。

3.串行外设接口

串行外设接口:是一种串行通信方式,主要用于MCU扩展外围芯片。

4.集成电路互联总线

集成电路互联(I2C)总线:是一种由PHILIPS公司开发的两线式串行总线,主要用于用户电

路板内MCU与其外围电路的连接。

5.通用串行总线

通用串行总线(Universal Serial Bus, USB):是MCU与外界进行数据通信的一种新方式,其速度快、抗干扰能力强,在嵌入式系统中得到了广泛的应用。

6.控制器局域网

控制器局域网:是一种全数字、全开放的现场总线控制网络,目前在汽车电子中应用最广。

7.边界扫描测试协议

边界扫描测试(Joint Test Action Group, JTAG)协议:由国际联合测试行动组开发,对芯片进行测试的一种方式,可用于对MCU的程序进行载入和调试。JTAG能获取芯片寄存器等内容,或者测试遵守IEEE规范的器件之间引脚的连接情况。

8.串行线调试技术

串行线调试(Serial Wire Debug, SWD)技术:使用2针调试端口,是JTAG的低针数和高性能替代产品,通常用于小封装微控制器的程序写入与调试。SWD适用于所有ARM架构的处理器,兼容JTAG。

3.3 与功能模块相关

1.通用输入输出

通用输入输出(General Purpose I/O, GPIO):即基本的输入输出,有时也称并行 I/O。

作为通用输入引脚时:MCU内部程序读取该引脚,知道该引脚是“1”(高电平)或“0”(低电平),即开关量输入。

作为通用输出引脚时:MCU内部程序向该引脚输出“1”(高电平)或“0”(低电平),即开关量输出。

2.模数转换和数模转换

模数转换(Analog to Digital Convert, ADC)的功能是将电压信号(模拟量)转换为对应的数字量,经过ADC,MCU就可以处理这些模拟量(即实际应用的物理量)。

与之相反,数模转换(Digital to Analog Convert, DAC)的功能则是将数字量转换为电压信号(模拟量)。

3.脉冲宽度调制器

脉冲宽度调制器(Pulse Width Modulator, PWM):是一个数模转换器,可以产生一个高电平和低电平之间重复交替的输出信号,这个信号就是PWM信号。

4.看门狗

看门狗(Watch Dog):一个为了防止程序跑飞而设计的一种自动定时器。当程序跑飞时,由于无法正常执行清除看门狗定时器,看门狗定时器会自动溢出,使系统程序复位。

5.液晶显示

液晶显示:电子信息产品的一种显示器件,可分为字段型、点阵字符型、点阵图形型三类。

6.发光二极管

发光二极管(Light Emitting Diode, LED):是一种将电流顺向通到半导体 PN (Positive/Negative)结处而发光的器件。常用于家电指示灯、汽车灯和交通警示灯。

7.键盘

键盘:嵌入式系统中最常见的输入设备。识别键盘是否有效被按下的方法有查询法、定时扫描法和中断法等。

3.4 表格汇总

四、编译、下载与运行第一个嵌入式程序 4.1 集成开发环境的配置与安装

        恭喜你完成上面的部分!(或者没完成/没做过,都恭喜你来到了这项任务)

        

        集成开发环境配置好了吗?如果没有,也不麻烦你再划上去找了,给你准备在下面了(基本无脑下一步就行)。以下内容需安装好开发环境后食用。

AHL-GEC-IDE集成开发环境:http://116.62.63.164:45688/AHL-GEC-IDE(4.55).rar

配套电子资源:http://116.62.63.164:45688/AHL-MCU6-V2.0-20240118.rar

安装好的集成开发环境like this:

4.2 运行第一个嵌入式程序

步骤1:硬件接线。将Type-C数据线与主板上的接口相连,另一端连接计算机的USB接口。

步骤2:打开环境,导入工程。

单击菜单“文件”->“导入工程”,选择电子资源中的“..\04-Software\CH01\AHL-STM32L431-Test”(后缀不重要)。

载入作者提供的工程文件夹,内容如下(以后需要做的内容大概就是这样的样式吧..),左侧是工程树形目录,右侧是文件内容编辑区。

步骤3:编译过程。

单击菜单“编译”->“编译工程”,一般情况下,会在“编译输出”处显示“编译成功!”。

步骤4:连接GEC。

单击菜单“下载”->“串口更新”,开启了新的窗口“更新窗体”,随后单击“连接GEC”查找目标GEC。

一般情况下是会卡住的(比如我..),可能是蓝牙的原因。卡住以后关不掉的话,打开资源管理器结束进程即可。有两种解决办法:①关闭所有程序,重启电脑,打开开发环境,重做前3个步骤;②结束开发环境的进程,关闭蓝牙,重新打开开发环境,重做前3个步骤。

阻塞后将一直卡在这个界面,参照上文的解决方案解决。

顺利的话,会进入下面的状态,实时传输主板的信息到计算机。

步骤5:下载机器码。

单击“选择文件”按钮,选择编译工程目录下的“Debug”文件夹中的“hex”文件导入(步骤3编译成功才有的),然后单击“一键自动更新”按钮,显示“程序整体更新成功!”即更新完成。

步骤6:观察运行结果。

更新完成后,程序将按照下图的顺序自动执行,以一定的间隔发出对应的光。

这一步的观察是肉眼观察。

步骤7:通过串口观察运行情况。

①观察运行过程,单击菜单“工具”->“串口工具”,选择其中一个串口(一般是两个,一个能显示三色灯的状态,一个能接收和发送数据,不清楚是哪个换着选就好了),波特率设为115200并单击“打开串口”。

②验证串口收发。关闭已经打开的串口,打开另一个串口,在“发送数据框”中输入字符串(自行决定)。正常情况下,主板会回传数据给PC,并显示在接收框。

五、总结

本周的学习任务就是这样了,如内容不正确或有疑问欢迎评论区留言讨论,我们下周再见!(如有侵权,请联系作者删除)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有