0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

uC/OS是个什么鬼?那它有什么用呢?

GReq_mcu168 来源:玩转单片机 2020-07-01 16:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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,相应的在多个任务间切换的速度也就越快。

那么什么是中断呢?

从本质上来讲,中断是一种电信号的变化,当设备有某种事件发生时(产生电平变化),它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。(就好比小明现在正在看我写的这篇文章,突然有快递来敲门他就会先放下手机去取快递然后回来接着看,既拿了快递又读了文章)如上图所示电信号从低电平跳转高电平的中断称之为上升沿中断,反之称之为下降沿中断。

因为篇幅的限制以上只是简单的介绍了一下uC/OS,当然它还有很多其它的优点,例如内存分配,任务消息队列,等等。这些都是这个系统多年迭代累积下来的“车轮”,如果感兴趣的朋友可以深入的了解一下。

uC/OS固然是好,但是真的有必要什么都用 uC/OS么?我看未必,杀鸡何用宰牛刀。以下引用一位知友的留言:

“2以前没学过操作系统,用单片机裸机写程序。有一次做一个功能特别复杂的东西,发现中断都快用完了,并且用中断有些地方实现的特别勉强,冗余,复杂。当时根本就不知道有多任务,也以那时的知识根本想不到如何优化。如果当时学过操作系统,用过ucos,这个问题就很好解决了。不信,你看能不能用裸机实现一个简单的平板电脑

6以后想去大公司,做平板,做手机,不会嵌入式linux估计不行吧,这个依旧包括了上述所有知识。”(这位朋友表达的意思我懂,在此只是引用这一段话,只是引用!)

(此段纯吐槽)可能是现在中国手机行业很赚钱。是个大一点的公司就要做平板,做手机,大公司都需要这样的人才,一窝蜂的往里钻。虽然arm理论上也算是单片机的一种,但是我更喜欢将其归入微处理器的行列,做手机做平板要是我肯定不会选stm32上uC/OS来做。如果是为了好找工作,为了做手机那还是学嵌入式linux比较靠谱。我是学自动化的,在我的感觉里单片机(stm32,avr,飞思卡尔,51等等)这类是属于微控器,最适合的就是用来做控制的,不是为了做手机而生的。

和做人一样首先要清楚自己的定位,清楚自己能干什么,不能干什么。汽车芯片,3d打印机,数控机床,手环,液晶显示器,四轴,录像机,洗衣机,玩具,飞机仪表板等等等等,都有单片机的用武之地,我给它的定位就是简单重复高效的控制器。有朋友留言说 “一句话想赚钱不要学这个。” 我只能引用这样一句话 “中国不是实体经济不行了,而是你的实体经济不行了。”

2. 那你解释一下运放虚短的原理 简单讲就好@obovgood

运算放大器 MIT的 Anant Agarwal 教授讲的很好建议你去看看(其实网易公开课上有很多资源,都没人看)

什么是运算放大器?

运算放大器是一种带有特殊耦合电路及反馈的放大器,其输出信号可以是输入信号加、减或微分、积分等数学运算的结果。(简单的理解就是通过这个原件能实现输入信号的数学运算)

正好我用一个实际的例子来讲,下图是我之前用来驱动激光的一个原理图,看似很复杂不用怕,一步一步来。首先要知道这个电路是干什么用的,我上学的时候就是老师自己陶醉的在台上讲,也不告诉你学了知识能干啥,最后学的都是一头雾水,一脸茫然(又吐槽了)。为了保持激光稳定的工作,通过激光二极管电流必须是恒定的,这个时候就需要横流驱动。

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

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工作。

自己焊的原理板如图,中间的小长方块就是运放。

控制激光稳定输出!

注意以上所有推导能成立均建立在运放是线性工作的状态,至于运放什么时候是线性,如何在非线性条件下让运放线性工作,Anant Agarwal 教授都讲的很清楚了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    49

    文章

    8862

    浏览量

    165649
  • 函数
    +关注

    关注

    3

    文章

    4421

    浏览量

    67826

原文标题:单片机有什么用?

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    [VirtualLab] 准直系统中的

    | | | 实际上,许多光学系统都会受到杂散光的影响。例如,在光学系统的每个元件的表面上的反射和其他散射过程会产生额外的光,干扰系统实际需要的信号。 潜在的干涉图案(也称为像)可能会对设置的整体性
    发表于 04-20 08:21

    [VirtualLab] 准直系统中像效应的研究

    伪反射。在这个例中,我们分析了高Na激光二极管准直透镜系统中这种反射的存在,我们模拟了产生的像对探测场的影响(由主准直光束的干涉引起的同心环图案和由杂散光产生的二次发散),并确定需要在透镜系统
    发表于 04-16 08:29

    深入解析 UC1872/UC2872/UC3872 谐振灯镇流器控制器

    深入解析 UC1872/UC2872/UC3872 谐振灯镇流器控制器 在电子工程师的日常工作中,选择合适的控制器对于各类电子设备的设计至关重要。今天,我们就来深入探讨 UNITRODE 公司
    的头像 发表于 02-27 15:10 264次阅读

    os2是什么光纤

    OS2 是一种单模光纤标准类型,主要用于长距离、高速数据传输,具有低衰减、低色散、支持全波段传输等特点,适用于城域网、广域网、长途通信及数据中心内部连接等场景。 以下是关于 OS2 光纤的详细介绍
    的头像 发表于 01-26 10:16 737次阅读

    【热敏电阻】什么是材料常数?有什么用

    为什么手机能感知电池温度,防止过热?为什么智能热水器能控制水温?和电子元件—热敏电阻有关。 热敏电阻是一种对温度感知灵敏的电子元件,其电阻值随着温度变化而变化。热敏电阻之所以能感知温度,和材料常数有关。 什么是材料常数?有什么用吗?
    的头像 发表于 01-13 11:22 360次阅读
    【热敏电阻】什么是材料常数?有<b class='flag-5'>什么用</b>?

    划片机是干什么用

    划片机是干什么用的?在晶圆加工场景中,它也常被称为晶圆切割机,是半导体制造后道工艺中的核心设备,其核心用途是将完成前道电路制造(如光刻、刻蚀、沉积等)的整片晶圆,沿预设的空白切割道
    的头像 发表于 01-12 16:33 825次阅读
    划片机是干<b class='flag-5'>什么用</b>的

    TI UC1705/UC2705/UC3705高速功率驱动器:设计与应用解析

    TI UC1705/UC2705/UC3705高速功率驱动器:设计与应用解析 在电子设计领域,功率驱动器是连接低电平控制与高功率开关设备的关键桥梁。TI公司的UC1705、
    的头像 发表于 01-12 10:15 461次阅读

    德州仪器 UC1708/UC2708/UC3708 双非反相功率驱动器深度解析

    德州仪器 UC1708/UC2708/UC3708 双非反相功率驱动器深度解析 在电子设计领域,功率驱动器的性能直接影响着整个系统的效率和稳定性。德州仪器(TI)的 UC1708、
    的头像 发表于 01-12 10:10 320次阅读

    德州仪器UC1709/UC2709/UC3709双高速FET驱动器深度解析

    德州仪器UC1709/UC2709/UC3709双高速FET驱动器深度解析 在电子设计领域,为功率MOSFET的电容栅极提供快速导通和关断解决方案是一项关键挑战。德州仪器的UC1709
    的头像 发表于 01-12 09:45 354次阅读

    FreeRTOS和uC/OS-II的功能特性

    AWS 条款)。 uC/OS-II: 核心功能: 任务调度(固定优先级抢占式 + 时间片轮询)、信号量、互斥锁(带优先级继承)、消息邮箱、消息队列、事件标志、内存分区管理、软件定时器。 内存管理
    发表于 11-17 08:17

    FreeRTOS与uC/OS-II如何选择?

    /OS-II: 你非常熟悉 Jean Labrosse 的书或其设计理念。 你在维护一历史悠久的、基于 uC/OS-II 的项目。 你的应用对极端可靠性和确定性有非常高的要求(其严谨
    发表于 11-13 07:15

    各位大佬帮忙看一下,下面的assertion有啥问题?为什么用verdi吃文件的时候会报错误?

    各位大佬帮忙看一下,下面的assertion有啥问题?为什么用verdi吃文件的时候会报错误
    发表于 11-10 06:51

    浮思特 | 红外热像仪有什么用?一文带你看懂它的“隐藏能力”

    问题来了,红外热像仪到底是干嘛的?它到底有什么用?别急,今天就用这篇文章,跟你聊聊红外热像仪的真正用途!红外热像仪到底是什么?一句话解释:它是一种可以“看到”温度差异的
    的头像 发表于 08-08 10:43 967次阅读
    浮思特 | 红外热像仪有<b class='flag-5'>什么用</b>?一文带你看懂它的“隐藏能力”

    极海APM32F407 uc/os3学习笔记之任务管理介绍

    最近了解了uc/os3这个操作系统,上篇介绍了uc/os3如何正确移植到APM32F407开发板上,根据我最近学到的一些知识,这篇文章主要介绍一下u
    的头像 发表于 05-24 14:37 1150次阅读
    极海APM32F407 <b class='flag-5'>uc</b>/<b class='flag-5'>os</b>3学习笔记之任务管理介绍

    VirtualLab:准直系统中像效应的研究

    。在这个例中,我们分析了高Na激光二极管准直透镜系统中这种反射的存在,我们模拟了产生的像对探测场的影响(由主准直光束的干涉引起的同心环图案和由杂散光产生的二次发散),并确定需要在透镜系统的关键表面上
    发表于 05-15 10:20