对现代微控制器进行编程-MIREA,三星和无线设备的新课程

你好,Giktayms! 在这个职位的基础上,我们,三星物联网学院项目和Unwired Devices正在根据基于Cortex-M3内核的编程微控制器的新实践课程发布一系列出版物,该课程将于明天在莫斯科技术大学信息技术学院教授 (也被称为MIREA)。

本课程的目的是向学生介绍基于Cortex-M3内核的现代微控制器,并为他们提供在操作系统下使用C语言进行编程的基本技能。 对学生的要求-熟悉C语言(不一定在微控制器上)和对电子学的基本理解(在连接LED的能力水平上)。

图片

最初,IoT Academy计划被认为是相当高级的课程-学生应使用适用于LoRa和6LoWPAN网络的现成数据传输模块,固件已加载到其中,并支持必要的传感器和与之配合使用的必要逻辑。 实际上,课程就是配置这些模块并编写高级软件,以在Samsung Artik + Tizen平台上处理传入的数据。

但是,如实践所示,许多学生对更认真地研究微控制器内部正在发生的事情感兴趣。 同时,与此同时,在与操作系统配对的Cortex-M控制器培训课程上,一切都非常糟糕:实际上,十分之九的此类课程专门用于使用StdPeriphLib和/或CubeMX编写简单的应用程序,其中一半的内容是关于初始化问题的控制器及其外围设备。

但是,现代现实看起来有所不同-在大多数商业项目中(我们将在下一篇文章中讨论这些统计数据,而并非从最高处获取数据),已经使用了RTOS,它带来了硬件的硬件抽象,硬件资源的虚拟化,多任务处理和许多其他有用的东西。

尤其有趣的是,使用RTOS可以显着降低进入门槛-正是在其中,主要问题经常出在其中。 教育程序的主要原理是从简单到复杂的发展-在第一堂课中研究现代微控制器时,它分解为STM32时钟方案(整个A4页的字体不太大),并且只需要编写半页代码才能使微控制器启动。 是的,您可以进行一系列的讲座,从汇编器,寄存器和时钟模式开始-但老实说:从一开始就对这个主题没有认真兴趣的学生只会在通过考试的威胁下走向终点。

是的,代码生成器解决了输入阈值问题,但是它们也使我们与黑匣子一起工作,这使我们对系统的内部结构失去了理解。 但是,一方面,以源代码形式分发的现代RTOS一方面使您可以快速地从相当简单的事物开始;另一方面,当您研究各种细微差别时,您可以深入研究系统的内部结构。

去年12月,我们已经进行了一次试验课- 记录在YouTube上 -向学生介绍了什么是现代微控制器,以及如何使它们上的LED闪烁。 我必须说成功是令人印象深刻的:我们是从早上十点半开始的,当时听众中没有一个人拥有STM32的编程经验,只有几个人具有Arduino的经验,但是我们晚上五点在IoT Academy实验室结束,那里有些学生已经开始在STM32上编写带有按钮和RGB标尺的玩具。

结果,我们-有线设备,三星物联网学院和MIREA IT研究所-得出了这样的结论:现在是时候全面学习如何使用现代微控制器了。 他们做到了。

该课程将于明天(3月3日)开始向MIREA IT学院的学生讲授,该课程将由6堂讲座和5堂实践课组成,并逐步加深与控制器相关的主题。

此外,该研究所将记录所有演讲并有选择地记录实践课程;在三星研究院的IoT博客上,将发布适应于ST Nucleo-L152板使用的讲义,每个人的价格为1200-1400卢布,有线设备github存储库将显示教室中使用的代码。

在所有实际练习中,我们将仅使用基本的OS代码。 因此,尽管学生可以使用LoRa网络的完整堆栈,但在上一课中,任务不是使用它,而是编写您自己的数据传输协议并确保其免受重大攻击。

我们不会使用StdPeriphLib,CubeMX甚至LL-如果我们需要谈论微控制器的操作,我们将谈论寄存器和CMSIS。 OS HAL代码也只使用CMSIS。

那么该课程将包括哪些内容?

0.入门讲座。 现代微控制器,编程工具,实时操作系统。 STM32系列控制器。

1.嵌入式操作系统中的多任务处理。 抢占式和非抢占式多任务无滴答系统。 线程,计时器,中断。

实践:通过将来自中断的消息发送到单独的流,编写一个与按钮和LED配合使用的简单应用程序。

2. I / O端口和接口SPI,I2C,UART。 时钟,同步和异步接口,硬件和软件实现。

练习:TI OPT3001(I2C)光传感器驱动器设备,并可以从用户应用程序中使用它。 向驱动程序添加了以用户设置的阈值生成中断的功能。

3.使用模拟和准模拟信号。 PWM,ADC,DAC 产生模拟信号的方法。 信号数字化,采样率和Kotelnikov定理。

实践:根据输入的模拟信号的值,使用PWM调节灯的亮度。 将时变模拟信号数字化,并将接收到的值上传到UART。

4.节能。 处理器内核的操作模式-RUN,SLEEP,STOP,STANDBY。 从外部和内部来源唤醒。 保存控制器的RAM状态,RTC备份寄存器。 在OS中使用低功耗模式。

实践:在脉冲计数器的“睡眠”应用中,定期轮询给定GPIO的状态并累加值。 将累加值保存在EEPROM和备份寄存器中。

5.无线数据网络。 使用LoRa广播频道。 保护传输的数据免受典型攻击。

练习:使用SX1276 LoRa收发器驱动程序在两个微控制器之间进行消息传递。 消息加密,防止消息伪造,防止重复攻击。

6.免费形式的附加实践课。 问答,关于学生自己项目的咨询。

您认为重要和必要的事情已经丢失了吗? 在评论中写这个。

Source: https://habr.com/ru/post/zh-CN410765/


All Articles