judy的博客

浅谈“模拟输入信号”保护电路

judy的头像

本文介绍了四种模拟输入信号的保护电路的实现方法。

本文仅仅是起到抛砖引玉的作用,一方面希望大家提出宝贵的意见,另外也希望大家自行详细计算有关参数,因为文中的器件参数有可能不合适。

最近由于工作的需要,涉及到了模拟输入信号的保护电路问题。结合以往的工作实践以及网络文献资料的查找。现在就保护电路作一简单的说明。

一、 电源钳位保护

浅谈“模拟输入信号”保护电路

上述电路存在可靠性的问题。如果输入电压过高,比如超过了运放的工作电压。那么就有可能造成运放的损坏。所以将上述的电路需要改进。

二、TVS 管保护方法

嵌入式系统在机器人中的应用

judy的头像

随着高新技术的发展,机器人在各个行业,各个领域的使用率节节攀升。而机器人的发展,于嵌入式计算机为核心的嵌入式系统是密不可分的。目前,嵌入式系统在机器人控制系统被广泛采用。

嵌入式控制器越来越微型化、功能化。微型机器人、特种机器人等也获得更大的发展机遇,无论从控制系统的结构还是机器人的智能程度方面都得到了很大的提高。以索尼的机器狗为代表的智能机器宠物是最典型的嵌入式机器人控制系统,除了能够实现复杂的运动功能,它还具有图像识别、语音处理等高级人机交互功能,它可以模仿动物的表情和运动行为。火星车也是一个典型例子,这个价值10亿美金的技术高度密集移动机器人,采用的是VxWorks 操作系统,它可以在不与地球联系的情况下自主工作。下面从运动控制系统、远程控制、视频监控系统三个方面分析嵌入式系统在机器人中的应用情况。

运动控制系统

机器人的运动控制部分一般采用ARM 7来完成,主要是由于整个系统对实时性要求较高,利用ARM 7来专门控制伺服能更好的满足要求。

CAN总线学习总结——错误帧和错误状态

judy的头像

一、五种CAN总线可能发生的错误

1、CRC错误:

接收节点计算出的CRC校验值,与发送节点计算的结果不一致;

2、格式错误:

传输的数据帧格式,与任何一种帧格式都不符;

3、应答错误:

ACK段,发送节点没有收到接收节点发出的应答(显性位);

单节点的CAN设备发送数据帧时为发生应答错误;

4、位发送错误:

发送过程中,发送节点发送的同时监听总线电平,如果总线电平和发送的不一致;

在仲裁域发现不同不报错,因为就是要仲裁掉优先级低的报文;

发送被动错误标志、主动错误标志期间检测总线电平有6个相同位时;

5、位填充错误:

帧起始到CRC之间,接收节点检测到有6个连续相同的位电平时,也就是违反5位相同位插入1位相反位的“位填充”原则;

因为ACK域和帧结束域电平固定,也无需填充;

二、三种错误状态

主动错误标识——6个显性位、由主动错误节点发出

被动错误标识——6个隐性位、由被动错误标志发出

错误界定符——8个隐性位

1、主动错误

单片机之Watchdog

judy的头像

一、Watchdog介绍

单片机的watchdog一般都有两个,一个是独立看门狗IWDG,一个是窗口看门狗WWDG。以STM32为例,STM32的独立看门狗是一个12位的递减计数器,当计数器的值从某个值一直减到0的时候,系统就会产生一个复位信号,即IWDG_RESET。看门狗功能由VDD电压域供电,在停止模式和待机模式下仍能工作。

关于STM32的独立看门狗的框图如下所示:

单片机之Watchdog

二、Watchdog的工作原理

1、为了防止程序在运行过程中跑飞,加上一个看门狗实时监控程序,如果在规定的时间内没有喂狗,则狗叫会是的单片机复位。

2、如果在规定的时间内,刷新计数器的值,则单片机就不会产生复位,即我们所说的喂狗。

3、STM32的看门狗超时时间(40KHz的输入时钟(LSI))如下表所示:

Lua在单片机中的移植

judy的头像

Lua代码符合ANSI C标准,只要有C编译器的开发环境就能跑Lua。

虽说只要有C编译器就能跑Lua,但是单片机的环境太简单,有些C标准的内容仍旧无法支持。

Lua的官网是:www.lua.org

移植

(1) 把 lua.c 和 luac.c 删除,这两个是一个Lua Shell,和平台相关,单片机中一般没用。

(2) 对内存敏感的项目可以替换掉 lauxlib.c 文件里 l_alloc 函数调用的 free 和 realloc 函数。

(3) loslib.c 和系统相关,单片机中最多跑RTOS,所以这个文件可以删除。

(4) liolib.c 中使用了标准文件操作fopen、fclose、fread、fwrite等函数。虽然有些单片机支持这些函数,但还是要自己重定向这些函数,而且在单片机中一般也不用文件来操作IO,所以这个文件可以删除。

(5) 如果删除了 loslib.c 和 liolib.c,那么在 linit.c 中要把 loadlibs 数组中相关的元素注释掉。这样调用 luaL_openlibs 时就不会加载这两个库了。

关于BSP,BIOS,和bootloader

judy的头像

BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层OS。

例如:

在VxWorks中的网卡驱动,首先在config.h中包含该网卡,然后将网卡含网卡的信息的参数放入数组 END_TBL_ENTRY endDevTbl [] 中,系统通过函数muxDevLoad( )调用这个数组来安装网卡驱动。

而在Linux中的网卡驱动,是在space.c中声明该网络设备,再把网卡驱动的一些函数加到dev结构中,由函数ether_setup()来完成网卡驱动的安装。

纯粹的BSP所包含的内容一般说来是和系统有关的驱动和程序,如网络驱动和系统中网络协议有关,串口驱动和系统下载调试有关等等。离开这些驱动系统就不能正常工作。

运算放大器11种经典电路

judy的头像

遍观所有模拟电子技朮的书籍和课程,在介绍运算放大器电路的时候,无非是先给电路来个定性,比如这是一个同向放大器,然后去推导它的输出与输入的关系,然后得出Vo=(1+Rf)Vi,那是一个反向放 大器,然后得出Vo=-Rf*Vi……最后学生往往得出这样一个印象:记住公式就可以了!如果我们将电路稍稍变换一下,他们就找不着北了!偶曾经面试过至 少100个以上的大专以上学历的电子专业应聘者,结果能将我给出的运算放大器电路分析得一点不错的没有超过10个人!其它专业毕业的更是可想而知了。

今天,芯片级维修教各位战无不胜的两招,这两招在所有运放电路的教材里都写得明白,就是“虚短”和“虚断”,不过要把它运用得出神入化,就要有较深厚的功底了。

虚短和虚断的概念

由于运放的电压放大倍数很大,一般通用型运算放大器的开环电压放大倍数都在80 dB以上。而运放的输出电压是有限的,一般在 10 V~14 V。因此运放的差模输入电压不足1 mV,两输入端近似等电位,相当于 “短路”。开环电压放大倍数越大,两输入端的电位越接近相等。

“虚短”是指在分析运算放大器处于线性状态时,可把两输入端视为等电位,这一特性称为虚假短路,简称虚短。显然不能将两输入端真正短路。

为什么大电容滤低频小电容滤高频的问题

judy的头像

由于实际的电容存在电感效应,通常需要讲一个电容等效为一个电容、一个电感和一个电阻的串联形式,如下图所示:

为什么大电容滤低频小电容滤高频的问题

所以,电容的实际阻抗为:
为什么大电容滤低频小电容滤高频的问题

由上式可得,当
为什么大电容滤低频小电容滤高频的问题

时,电容的实际阻抗值最小,此时的频率成为电容的自谐振频率,记为f0,

当频率大于f0时,实际电容呈现出容性阻抗,

当频率小于f0时,实际电容呈现出感性阻抗。

4个有趣的测谎电路(检测皮肤电阻变化)

judy的头像

我们来看几个有趣的“测谎仪”小电路,它们的原理是检测手指间的皮肤电阻。

测谎电路1

4个有趣的测谎电路

该电路检测你的手指之间的电阻来产生振荡。干燥的手指将检测到高达10万欧姆的电阻,这将使电路以低频率振荡发声。如果主体感到紧张,他会出汗,这会降低皮肤的电阻,并使电路振荡频率变高。
4个有趣的测谎电路

照片显示的电路内置在PC板与单独的触摸垫。

测谎电路2

页面

订阅 RSS - judy的博客