你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

单片机到底有什么用?

[复制链接]
gaosmile 发布时间:2020-10-11 22:35
1. uC/OS 是个什么鬼?
在一些朋友的留言和大神的文章中多次提到了 uC/OS,相信很多朋友看到之后都是蒙B的 “这是个什么鬼?”。uC/OS (Micro Control Operation System)翻译过来就是微控制器操作系统,最初版本是在1992年发布,现在已经发展到uC/OS III 了。
嗯,那它有什么用呢?
接触过单片机或编程的朋友一定知道 main() 函数,mian() 又叫主函数或者入口函数,顾名思义就是程序开始执行的地方(其实这是不严谨的,但是为了照顾小白可以这样简单的理解),而一般的裸机程序只有一个main(),从程序的开头到结尾跑一次就完了,而为了让程序能不停的跑往往会在main() 中加一个while(true) 让其不断的循环。uC/OS因为其处理方式理论上可以模拟无数个 "main() 函数"(任务),让这些任务并发运行,就像在一个单片机中有多个main() 函数一样,让原本单线程的单片机能有多线程的效果。
那 uC/OS 是变出无限个main函数呢,答案就是时钟节拍,时钟节拍就是系统以固定的频率产生中断(时基中断),并在中断中处理与时间相关的事件,推动所有任务向前运行。简单的来说就是高频率的切换任务来实现类似多线程的效果,这个时钟节拍是可调的,频率越快越浪费cpu,相应的在多个任务间切换的速度也就越快。
那么什么是中断呢?
微信图片_20201011223357.jpg

从本质上来讲,中断是一种电信号的变化,当设备有某种事件发生时(产生电平变化),它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。(就好比小明现在正在看我写的这篇文章,突然有快递来敲门他就会先放下手机去取快递然后回来接着看,既拿了快递又读了文章)如上图所示电信号从低电平跳转高电平的中断称之为上升沿中断,反之称之为下降沿中断。
因为篇幅的限制以上只是简单的介绍了一下uC/OS,当然它还有很多其它的优点,例如内存分配,任务消息队列,等等。这些都是这个系统多年迭代累积下来的“车轮”,如果感兴趣的朋友可以深入的了解一下。
uC/OS固然是好,但是真的有必要什么都用 uC/OS么?我看未必,杀鸡何用宰牛刀。以下引用一位知友的留言:
“2以前没学过操作系统,用单片机裸机写程序。有一次做一个功能特别复杂的东西,发现中断都快用完了,并且用中断有些地方实现的特别勉强,冗余,复杂。当时根本就不知道有多任务,也以那时的知识根本想不到如何优化。如果当时学过操作系统,用过ucos,这个问题就很好解决了。不信,你看能不能用裸机实现一个简单的平板电脑。
6以后想去大公司,做平板,做手机,不会嵌入式linux估计不行吧,这个依旧包括了上述所有知识。”(这位朋友表达的意思我懂,在此只是引用这一段话,只是引用!)
(此段纯吐槽)可能是现在中国手机行业很赚钱。是个大一点的公司就要做平板,做手机,大公司都需要这样的人才,一窝蜂的往里钻。虽然arm理论上也算是单片机的一种,但是我更喜欢将其归入微处理器的行列,做手机做平板要是我肯定不会选stm32上uC/OS来做。如果是为了好找工作,为了做手机那还是学嵌入式linux比较靠谱。我是学自动化的,在我的感觉里单片机(stm32,avr,飞思卡尔,51等等)这类是属于微控器,最适合的就是用来做控制的,不是为了做手机而生的。
和做人一样首先要清楚自己的定位,清楚自己能干什么,不能干什么。汽车芯片,3d打印机,数控机床,手环,液晶显示器,四轴,录像机,洗衣机,玩具,飞机仪表板等等等等,都有单片机的用武之地,我给它的定位就是简单重复高效的控制器。有朋友留言说 “一句话想赚钱不要学这个。” 我只能引用这样一句话 “中国不是实体经济不行了,而是你的实体经济不行了。”
2. 那你解释一下运放虚短的原理 简单讲就好
运算放大器 MIT的 Anant Agarwal 教授讲的很好建议你去看看(其实网易公开课上有很多资源,都没人看)
什么是运算放大器?
运算放大器是一种带有特殊耦合电路及反馈的放大器,其输出信号可以是输入信号加、减或微分、积分等数学运算的结果。(简单的理解就是通过这个原件能实现输入信号的数学运算)
正好我用一个实际的例子来讲,下图是我之前用来驱动激光的一个原理图,看似很复杂不用怕,一步一步来。首先要知道这个电路是干什么用的,我上学的时候就是老师自己陶醉的在台上讲,也不告诉你学了知识能干啥,最后学的都是一头雾水,一脸茫然(又吐槽了)。为了保持激光稳定的工作,通过激光二极管的电流必须是恒定的,这个时候就需要横流驱动。
微信图片_20201011223400.jpg

LASER1+和LASER-之间接的就是要求横流1A工作的激光二极管。如果电路看起来复杂图中所有电容均可以理解为滤波作用。为了理解虚短,虚段我们将其都去掉,是不是看起来简单了一些
微信图片_20201011223404.jpg

LASER-下方是一个mos管,简单的理解成一个特殊开关,它的1端口可以控制2->3的是否导通,并分去多余的电压。R8是0.03欧姆的采样电阻,为了实现1A横流R8a上方电压要为0.03v(I=U/R),那么运放端口6为0.03v。ok 这里我们先学习一下
虚短(虚短指在分析运算放大器处于线性状态时,可把两输入端视为等电位【这里2,3,5,6都是输入端】,就好像两个输入端短接在一起,但事实上并没有短接,称为“虚短”。由于运放的电压放大倍数很大,而运放的输出电压是有限的。因此运放的差模输入电压不足1 mV,两输入端近似等电位,相当于 “短路”。)
虚断(由于运放的差模输入电阻很大。因此流入运放输入端的电流往往不足1uA,远小于输入端外电路的电流。故通常可把运放的两输入端视为开路。“虚断”是指在分析运放处于线性状态时,可以把两输入端视为等效开路,这一特性 称为虚假开路,简称虚断。)
因为虚断(5,6)为开路,没有电流由6经过R8a到GND。
因为虚短所以(5,6)端口电压相等均为0.03v,由于R7a,R7b串联可得到端口1的电压
(V1-V5)/R7a=V5/R7b --------> V1=(V5/R7b)*R7a+V5=0.33v
因为虚短所以(1,2,3)端口电压相等,所以只要用单片机控制3端口的电压为0.33v,激光器就能稳定在1A工作。
微信图片_20201011223406.jpg

自己焊的原理板如图,中间的小长方块就是运放。
控制激光稳定输出!
微信图片_20201011223410.jpg

注意以上所有推导能成立均建立在运放是线性工作的状态,至于运放什么时候是线性,如何在非线性条件下让运放线性工作,Anant Agarwal 教授都讲的很清楚了。
收藏 评论0 发布时间:2020-10-11 22:35

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版