当前位置:首页 > AVR
  • 关于全新功能安全型AVR® DA系列单片机,你知道吗?

    关于全新功能安全型AVR® DA系列单片机,你知道吗?

    什么是全新功能安全型AVR® DA系列单片机?随着物联网(IoT)为工业和家庭应用提供更强的连接性,以及车联网提升了驾驶室和操控功能,业界需要更高性能的单片机来实现更好的实时控制以及增强的人机接口应用。Microchip Technology Inc.(美国微芯科技公司)今日宣布推出下一代AVR® DA系列单片机(MCU),是其首款带有外设触摸控制器(PTC)的功能安全型AVR MCU系列。 Microchip 8位单片机事业部助理营销副总裁Greg Robinson表示:“新推出的AVR DA单片机系列继承了Microchip高性能和高代码效率器件的优势,通过搭载先进模拟和独立于内核的外设,以及比现有器件更多的电容式触摸通道,满足了多个行业的新需求。新的单片机系列产品广泛应用于智能家居安全、楼宇自动化、传感器系统等应用,以及汽车和工业自动化等领域,助力开发人员设计出更加强大、精确和响应灵敏的各类应用。” Microchip的功能安全认证适用于具有最新安全特性的器件,这些器件同时还带有安全手册、故障模式、影响与诊断分析(FMEDA)报告,在某些情况下,还具备诊断软件,从而减少终端应用安全认证的时间和成本。AVR DA MCU系列包括多个集成的安全功能,以确保稳健的运行,诸如上电复位、欠压检测器和电压水平监控器,可确保充足的电源电压。循环冗余校验(CRC)扫描确保闪存中的应用程序代码有效。通过确保代码的完整性,可避免应用程序的意外和潜在的不安全行为。 Microchip的新型AVR DA系列MCU可在全电源电压范围内实现24 MHz的CPU速度、存储密度高达128 KB的闪存、16 KB SRAM和512 字节EEPROM,具备12位差分ADC、10位DAC、模拟比较器和过零检测器。PTC支持电容式触摸接口设计,支持按钮、滑动条、滚轮、触摸板、较小型触摸屏及广泛应用于消费和工业产品和车辆的手势控制。AVR DA系列支持多达46个自电容和529个互电容触摸通道,并采用最新一代增强型驱动屏蔽PTC和升压模式技术,提供增强的抗噪性、耐水性、触摸灵敏度和响应时间。 此外,AVR DA 系列MCU为嵌入式实时控制系统带来了额外的价值。集成事件系统支持外设间无需CPU即可进行通信。事件无延迟,信息不会丢失,为进行可靠和安全的设计提供了增强的实时性能和可预测性。通过减少CPU需要激活的时间,应用程序的总功耗得以降低。 可配置的自定义逻辑外设支持内部逻辑功能设置,无需外部元件,减少电路板空间和材料成本。凭借12位差分ADC等先进模拟特性,AVR DA系列MCU可在嘈杂环境中测量小幅度信号,非常适合于哈希环境中的传感器节点应用。 AVR DA系列MCU的高存储密度和SRAM与闪存的比率使AVR DA系列产品对无线和有线连接的传感器节点以及其他协议栈密集型应用都具有吸引力。 开发工具 Microchip AVR DA系列提供多种软硬件支持选项。软件支持包括Microchip MPLAB® X、MPLAB Xpress和Atmel Studio,代码配置工具包括MCC和START,编译器包括GCC、XC8和IAR嵌入式工作台(IAR Embedded Workbench)。XC8编译器的功能安全认证版本可通过Microchip功能安全程序获得。硬件支持包含在调试器/编程器中,包括MPLAB PICkit™ 4、MPLAB SNAP、Atmel ICE和AVR128DA48 Curiosity Nano评估工具包。以上就是全新功能安全型AVR® DA系列单片机解析,希望能给大家帮助。

    时间:2020-10-22 关键词: Microchip AVR da系列 单片机

  • 你会设计一键开关控制单片机吗?

    你会设计一键开关控制单片机吗?

    你会设计一键开关控制单片机吗?想要用一个按键开关控制单片机,能做到吗?换句话说,就是一键开关机应该如何动手? 1、按下 K,电源通过 4007 为整个系统供电,AVR 开始工作。此时 PB1 为高电平。注意,电源来源是连接器旁边的+5V。 2、AVR 检测 PB1,连续 2 秒为高(反之干扰和和误按 K),PB0 输出高电平,继电器工作。 3、AVR 等待 PB1 为低,然后进入正式工作。 4、此时 K 已经释放,整个系统有电,保持工作,但 PB1 为低电平(因为 4007 隔离)。 5、如果 AVR 再次检测到 PB1 为高时(连续 2 秒),AVR 的 PB0 输出低电平,然后什么也不做了。 6、释放 K 后,系统电源关闭。 继电器可以使用电子开关代替,但电子开关会漏电,仅供参考。 另外,再放一个仪器仪表中比较常见的单键开关电路。 这里使用了普通的 9014、9012 三极管,其实不好,可以换用 MOS 管。以上就是一键开关控制单片机解析,希望能给大家帮助。

    时间:2020-10-21 关键词: 连接器 mos AVR

  • 基于AVR单片机的串口转FSK的通信模块设计

    基于AVR单片机的串口转FSK的通信模块设计

      随着信息技术与网络技术的飞速发展,信息交互应用业务给人类生活带来更多的便利,信息终端表现出巨大的市场潜力。但是由于终端用户环境不同,用户信息交互方式可能不同,目前常用的有IP方式、FSK方式以及无线通信方式等。为了能够提高终端市场竞争力,减少系统开发成本投入,通信模块与终端程序独立设计是较为理想的解决方案。本文采用ATmega48芯片及CMX865芯片实现FSK通信模块,基于此模块,用户与业务平台之间进行FSK信息交互,相对于终端来说就是简单的串口通信。   1ATmega48介绍   ATmega48是基于AVR增强型RISC(精简指令集)结构的高性能、低功耗的8位CMOS微控制器。微控制器具有可控制的上电复位和可编程的掉电检测电路、经过标定的片内RC振荡器、片内外18个中断源和5种休眠模式。由于其先进的指令集以及单时钟周期指令执行时间,ATmega48的数据吞吐率高达1MIPs/MHz,运行速度比普通的单片机高出10倍,从而可以缓解系统在功耗和处理速度之间的矛盾。   其片内集成了4KB的系统内可编程Flash、256字节的EEPROM、512字节的SRAM。其外设具有可编程的串行USART接口、可工作于主机/从机模式的SPI串行接口;存在2个具有独立预分频器和比较器功能的8位定时/计数器和1个具有预分频器、比较功能和捕捉功能的16位定时/计数器、具有独立片内振荡器的可编程看门狗定时器等。ATmega48/88/168芯片硬件电路可以完全兼容,完全可以根据软件实际需求灵活选择AVR芯片,极大地方便系统的开发与研制。   2CMX865简介   CMX865是CML公司新出的一款DTMF编/解码器/FSK调制解调器复合IC芯片,它采用单个高速串行总线控制,与大多数串行接口兼容。CMX865的主要特征是:   ◆供电电压2.7~5.5V,低功耗操作模式;   ◆支持V.23、Bell202FSK1200bps编码/解码;   ◆集成高可靠性DTMF、编码器/解码器;   ◆集成振铃检测功能,支持语音探测功能。   3硬件设计   图1为串口转FSK通信模块电路。系统主要以AVR单片机ATmega48芯片和CMX865调制/解调芯片为硬件架构,ATmega48芯片利用C-BUS总线对CMX865芯片进行控制操作,实现FSK通信。CMX865芯片的IRQN终端与CPU芯片的外部中断0(INT0)相连,确保软件可以采用中断方式接收/发送FSK数据。CMX865芯片的时钟信号、片选信号、响应应答数据信号、接收控制数据信号分别与ATmega48芯片的普通I/O接口引脚相连,CPU可以通过模拟口线方式对CMX865芯片进行控制。     图1还提供了基本的FSK接收/发送数据接口电路和振铃检测电路。在FSK发送电路中,CMX865芯片TXA(15引脚)处外接电阻的目的是匹配芯片接口对线路的交流阻抗。在FSK接收电路中,CMX865芯片RXAFB(9引脚)与RXAN(10引脚)之间的电容以及隔离变压器之间电容设计的目的是滤除高频噪声;通过调节接收电路中两个电阻R1、R2的阻值即可改变接收端提供给CMX865芯片信号的幅度。在振铃检测电路中,IC1是光电耦合器,不振铃时光电三极管截止,RING为高电平;振铃时,振铃信号经过电容耦合及稳压管稳压,振铃电压使IC1内发光二极管发光,照射到光电三极管的基极上导致光电三极管导通,RING为低电平,通过ATmega48引脚检测到低电平的振铃信号。   4软件实现   ATmega48芯片具有4KB内部Flash和512字节的片内SRAM,软件实现需考虑资源分配问题,特别是SRAM使用情况。由于程序涉及串口通信、DTMF通信和FSK通信3种情况,理论上需要开辟6个缓冲区。如果这样,每一个缓冲区的大小显然不能确保达到实际通信数据量的需求。结合FSK通信特点,DTMF数据传输与FSK数据传输不可能同时发生,因此FSK与DTMF可共用相同缓冲区。同样串口接收与FSK发送、串口发送与   FSK接收都不会同时发生,这样通信只需要开辟两个缓冲区就可以确保模块正常通信,考虑实际业务平台数据量情况,软件设计中为FSK接收开辟255字节缓冲区复用;FSK发送开辟45字节缓冲区复用。   4.1主程序实现流程   通信模块主程序包括:CPU初始化、CMX865初始化、初始化建链、串口通信和FSK通信子程序等。主程序流程如图2所示。初始化建链环节是模块正常工作的基础,通过初始化建链操作,信息终端可以根据线路环境以及平台超时机制对通信模块参数进行设置,确保通信的稳定性。通信主流程循环执行3个子功能函数:线路状态处理函数、串口数据解析与处理函数、链路保持函数。线路状态处理函数设计了3种线路状态,即初始状态、空闲状态和摘机状态;正常工作时仅在空闲状态和摘机状态之间切换。其中在空闲状态检测振铃、根据状态位执行摘机、DTMF拨号等操作;在摘机状态根据状态位执行FSK收发、脱线检测、挂机控制等操作。串口数据解析与处理函数包含串口数据按命令集解析、对解析命令进行应答和状态置位处理部分。这样线路状态处理函数和串口数据解析与处理函数通过状态置位标志紧密连接起来。FSK数据采用中断方式直接接收,接收完毕后在摘机状态下直接通过串口发送给信息终端。由于串口发送应用相对单一,为简单处理串口发送采用即时应答处理方式,分散在通信主流程各子功能函数中实现,提高了通信效率。通过链路保持函数判断串口通信是否异常,通信模块周期性地向信息终端发送链路保持命令,如果3次重发均未收到终端应答命令,通信模块将自动锁闭线路,重新执行初始化建链操作,实现串口异常的处理。   

    时间:2020-09-02 关键词: fsk cmx865 AVR

  • Atmel高效智能家用电器解决方案

      LED照明行业灯光亮化工程,既受全球大环境的影响,也有其行业特殊性。而LED路灯电源恰恰是目前LED发展的重中之重,对于LED技术上的相关设计,目前已经有多种的方案与独特的设计手法,我们就来一一了解一下。   1. LED路灯电源电源为什么一定要恒流的呢?   LED照明材料的特性决定其受环境影响较大,譬如温度变化升高,LED的电流会增加,电压的增加,LED的电流也会增加。长期超过额定电流工作,会大大缩短LED的灯珠使用寿命。而LED恒流就是在温度和电压等环境因素变化时,确保其工作电流值不变。   2. LED路灯电源电源恒流精度   市场上有的电源的恒流精度差,象市面上流行的推荐方案等恒流的方案,误差达到±8%,恒流误差太大。一般要求在±3%就可以了。按3%的设计方案。生产电源要进行微调才能达到±3%误差。   3. LED路灯电源电源的工作电压   一般LED的推荐工作电压是3.0-3.5V,经测试,大部分工作在3.2V,所以按3.2V计算式比较合理的。N个灯珠串联的总电压=3.2* N   4. LED路灯电源电源的工作电流是多少才是最合适   例如LED的额定工作电流350毫安,有的工厂一开始就用到尽,设计350毫安,实际上此电流下工作发热很严重,经多次对比试验,设计成320毫安是比较理想的。尽量减少发热量,让更多的电能变成可见光能。   5. LED路灯电源板的串并联与宽电压要多宽呢?   要使LED路灯电源工作在输入电压范围比较宽的范围AC85-265V,则灯板的LED串并联方式很重要。尽量不使用宽电压,能分成AC220V,AC110V尽可能分类,这样才能确保电源可靠性。由于目前的电源一般为非隔离的降压式恒流电源,在要求电压110V时,输出电压不要超过70V,串联数不超过23串。输入电压220V时输出电压可以到达156V的。也就是说,串联数不超过45串。并联数不要太多,否则工作电流太大,电源发热严重。还有一种宽电压方案,APFC有源功率补偿就是先用L6561/7527 把电压抬高到400V,然后再降压,相当于两个开关电源。这方案在特定条件下才用的。   6. 隔离/非隔离   一般隔离电源如做成15W,放在LED路灯电源管内,其变压器体积很大,很难放进去。主要看空间结构视具体情况而定,隔离的一般只能做到15W,超过15W的很少,并且价格很贵。所以,隔离的性价比不高,一般是非隔离的占主流较多,体积可以做得更小,最小可以做到高8毫米,实际上,非隔离的安全措施做好了,是不存在问题的。空间允许的也可以做隔离电源。   7. LED路灯电源电源要怎样才可以做到与灯珠板匹配?   一些客户先设计好灯板,再找电源,发现很难有合适的电源,要么电流太大,电压太小(如7X1WI》350mA,或V《20V);要么电流太小,电压太高(如I《200mA或V》25V),造成的结果是发热严重,效率低,或者输入电压范围不够。其实,选择一个最优良的串并接方式,加在每个LED上的电压电流是一样的,而电源的效果却能发挥最好的性能。最好的方式是先和电源厂商沟通,量身定做。或自已生产电源。   8. LED的串并联与PFC功率因素   隔离式输入AC220V高压端电解电容容量一般以输入功率1W=1UF,AC110V1W=2UF目前市场上的电源PFC有三种情况:一种是不带PFC无功率因数补偿专用电路的,其PF值一般在0.65左右;二种是无源功率因数补偿PFC电路的,也就是无源功率因数补偿灯,也叫逐流电路板是目前使用最广可靠性最好,PF值一般在0.92左右;还用三种是用有源主动式7527/6561电路做的,也就是有源功率因数补偿,称为APFC电路中AC220V,AC110V可以用同容量的电解电容,选用1W=1.5UF。PF值可以达到0.99,但这个方案的成本比第二种方案贵一倍可靠性略差。所以第二种方案用的较多。对于无源式PFC电路:也叫做填谷式PFC电路,其直流工作电压范围是交流输入电压峰值的一半。如输入是220V,其峰值是220*1.414=312V,峰值电压的一半是156V,在非隔离式基础上输出波为上半波没有下半波。   所以LED路灯电源珠串联数最多45串以下为宜。因此,要想得到比较大的功率因素,灯珠的串联数不能太少,否则就达不到最佳工作状态,在隔离式电源上串联数量多少与副绕组匝数多少有关,必须要做到的电源功率要满足输出功率。电子元件在额定电压工作范围内工作电流越小发热越底寿命越长,反之寿命就会越短。LED路灯电源珠对交流份量很敏感,交流份量越高光线舒适度就越差。一般要用电解电容来维持电压,尽可能减少输出端电压交流份量,底压端电解电容容量不能太小,容量与输出电流比例为1UF《1.5MA否则LED会出现闪烁。非隔离式输入端高压电解电容选择与隔离式相同,输出端电容选择1UF《6MA。调光LED电源在输出端电解电容要满足1UF《0.5MA。   9. LED路灯电源电源效率   输入功率减去输出功率值 ,这个参数尤为重要,值越大效率就越低,就意味着输入功率有很大一部分转化为热量散发出来 ;如果是装在灯内就会产生一个很高的温度,再加上我们LED的一个光效比所散发热量,就会叠加产生更高的温度。而我们的电源内部所有电子零件的寿命都会随温度的上升而缩短。所以说效率是决定电源寿命最根本的因数,效率不能太低,否则消耗在电源上的热量太大。非隔离式效率高于隔离式,一般在80%以上就可以了,不过,效率与灯板的匹配接法有关   10. LED路灯电源散热   散热方案主要因素是LED路灯电源珠在不过热条件下使用能大大延长寿命,一般用铝合金,更易于散热。也就是LED路灯电源珠贴在铝基板上,外部尽量扩大散热面积。   面对如此广阔的LED市场实在是充满着生机,主要能科学的开发,某几个技术领域上能取得领先的地位,我相信我国的LED企业会越发强大的。

    时间:2020-08-31 关键词: Atmel 微控制器 智能家电 AVR

  • 脱离头部移动方式,口型命令让VR交互更轻松

    脱离头部移动方式,口型命令让VR交互更轻松

      我们都知道,VR技术不能脱离头显的佩戴,在玩的过程中必须依靠头部的移动来进行虚拟环境的位置转换。但这种方式,用户能玩的时间则不能太久,否则容易引起头部转动的疲劳。现在我们可以换种方式玩VR ,口型交互让VR交互变得更简单。   纽约州立大学分校宾汉姆顿大学的研究人员最近研究出一项新技术,用户只需使用口型即可在虚拟现实环境中进行交互。   众所周知,虚拟现实头显可以为用户带来逼真的沉浸式体验。然而,目前头显的佩戴方式都遮住了用户脸部上方,妨碍了整个面部识别。为了解决这一问题,宾汉姆顿大学计算机科学教授尹立军(Lijun Yin)和他的团队开发出另外一个系统,将口型作为虚拟现实的一种协作媒介进行交互。   尹的团队在一群学生中测试了这一应用。当用户戴上头显,呈现在其面前的是一款简单的游戏。该游戏的目的是让用户控制角色在森林中散步,尽可能的吃掉更多的蛋糕。用户需要通过转头来选择游戏进程,利用口型进行移动并通过微笑来吃掉目标蛋糕。该系统会对用户的口型进行描述、分类,并实现了较高的正确识别率。此外,该系统已被实际演示,并随后在虚拟现实应用中通过验证。   “我们想让这一系统同时运用在更多人身上,而不仅仅只是一个人。就像在Skype 上面试或者通信,假设该系统可以让你们感觉好像身处在同一空间内,让你们可以更加亲密接触,而电脑程序能有效地扫描你的面部表情并进行复制,使它们看起来真实,”尹如是说道。   尹表示:“虚拟世界不仅仅是为了游戏而存在。例如,医疗保健可以使用VR帮助残疾人,军人或者理疗专家也可以借此进行一些在实际生活中无法完成的训练。而口型交互使这种体验更具真实感。”   尽管该技术仍处于原型阶段,尹相信这一技术拥有广阔的应用前景。

    时间:2020-08-06 关键词: AVR

  • TCP/IP、UDP、HTTP、MQTT、CoAP这五种协议的概述

    TCP/IP、UDP、HTTP、MQTT、CoAP这五种协议的概述

    对于软件公司来说,IoT 模式为其硬件设计以及所提供的服务带来决定性的改变。其中影响最大的一个方面是通信协议。 通信协议 通信协议可以被认为是一种语言,即两台或两台以上的设备可以相互交流。同时无规矩不成方圆,通信协议也遵循一组规则,两台设备会将有意义的信息传递给对方。在分布式系统中通信协议极为重要,相同的协议不同的部分在多个位置独立运行。系统在运行进程时可能是多样化的,因此在系统中需要保证一组通用的指令来通信。 IoT 之所以可以掀起热潮,信息物理融合系统(Cyber-Physical Systems,简称CPS)功不可没。物理设备连接到互联网和传递数据及接收数据的概念基于 IoT 解决方案的真正地实现。与此同时,这也增加了现有的通信协议及互联网的复杂性。 IoT 的发展历程中带来了很多可能性,但其中唯一可行的是机器与机器(M2M)通过互联网实现实时有效连接。一台设备被连接到互联网仅被认为是人际互动间的产物,而不是一个顺其自然的结果。因此,协议与互联网之间的通信总是在不可靠与缓慢的基础上发展。   TCP/IP 协议 除了通信协议,互联网协议体系结构的另一个方面是 TCP / IP 堆栈。它控制两台计算机之间的数据传输。其中采用三次握手建立一个连接,其中涉及客户端确认数据的接收且发送确认消息给服务器。第二次握手是服务器端接收到客户端的数据后,返回确认回单,第三次是客户端也返回一个确认回单给服务器端,从而关闭通信通道。 这种通信方法的优点具有可靠性,可共享所有被发送的数据,但因为其过程都需要验证,所以消耗时间比较久。 UDP 协议 用户数据报协议(User Datagram Protocol,简称UDP)是一种比较快的通信方式,因为减少了确认程序。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。因此,与 TCP/IP 相比,UDP 的可靠性相对不高,但是比较快。对于M2M 项目的快速原型,一个非常简单的解决方案是使用 UDP,因为就 UDP 头包含很少的字节,比 TCP 负载消耗少。 HTTP 协议 在IoT 开发中协议最大的不同是在 OSI 模型的应用程序层。这一层在通信网络中指定了接口方法。系统如何连接服务器且数据如何发送都由这一层来决定。 其实最受欢迎的通信协议莫过于超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)。主要应用于 web 浏览器。它运行在一个客户/服务器模型上,服务器响应任何的客户端需求。因 web 网页可能会加载很多内容,因此该协议有必要建立在 TCP/IP 堆栈之上。 MQTT 协议 MQ 遥测传输(MQ Telemetry Transport,简称MQTT)是一个面向 IoT 应用程序的轻量级连接协议。它基于 TCP/IP 网络连接使用发布/订阅方法来传输数据。设计思想是开放、简单、轻量、易于实现,这也使它成为 IoT 开发的理想平台。 MQTT 很多有用的功能适用面向 IoT 应用程序。简而言之,想象一个公告板,无论什么时候,你都可以在上面记录或招贴。同时,对你所记录的内容感兴趣的任何人都可以看到。 MQTT 差不多就是这样的功能。 MQTT 包括代理和客户端两个部分。客户端可以访问或修改设备的数据,代理是持有并传递数据。 MQTT 使用发布/订阅消息模式。客户端可以在一个话题(Topic)下面发布特定参数数据给代理。另一个对此话题感兴趣的客户可以订阅该话题,并定期收到更新的消息。 MQTT 提供一个有质量的服务,从 IoT 角度来看,其本质是消息的优先级。在任何情况下一个重要的消息可以传输到目的地,因此有了服务质量(QoS),虽然传输速度会变慢但是交付有了保证。一个动态的数据源速度优先于效率,然而分配一个较低的 QoS,更像是一个“fire-and-forget”事件,如 UDP。 在一个主题下,MQTT 可以保留最后一个已收到的消息,前提是它发送给订阅者订阅链已启动。这允许订阅者在一个存在的客户端和代理网络中异步连接。这也为检查冗余及数据丢失提供了一个工具。 MQTT 客户端有一个属性称之为 Last Will a和 Testament。该属性允许客户端在异常中断的情况下发送通知给代理。这个快速的反馈有利于无线传感器网络自动再生,同时检测并修复缺失节点和异常值,最终确保无线传感器网络中数据流完美循环。 CoAP 协议 CoAP 是一个基于 REST 模型的网络传输协议。主要用于轻量级 M2M 通信。由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的 HTTP 协议应用在物联网上就显得过于庞大而不适用,CoAP 应运而生。 就用户可见性而言,CoAP 模拟了 HTTP 协议,并从这个角度来看,读数传感器数据本质上是像做一个 HTTP 请求。 CoAP 被认为是一种不会过时的技术协议,根据 Grtner 预测,500 亿台设备将会连接到互联网,未来进一步发展将迫切需要低成本、低能耗的设备。CoAP协议被设计用于与 10 kb RAM 一样的系统。 CoAP 更有趣的功能之一是能够发现网络中的节点。这对于低功耗无线传感器网络的自治和自我修复设计非常有用。关于无线传感器网络的可扩展性问题,可以使用 CoAP 协议来发现节点常规的冗余。 CoAP 是建立在 UDP 栈上,这是与 HTTP 或 MQTT 相比最主要的区别。它可以更加快速和更好的资源优化,而非资源密集型。 然而,在 CoAP 协议下 QoS 因素保持不变情况下,CoAP 相比 HTTP/MQTT 更加不可靠。但是 4 字节的头文件对于连续流系统如环境监测传感器网络是一个不错的选择。

    时间:2020-08-06 关键词: tcp 网络协议 AVR

  • 基于AVR内核的宠物狗无线感知交互系统

    一、项目概述 1.1 引言 维基百科中对于环保的内涵定义可分为三个方面:对自然环境的保护、对人类居住环境的保护、对地球生物的保护。在提到对地球生物保护时,很重要的一点就是人与动物的和谐共处。 宠物狗作为人类最亲近的动物之一,为我们的生活带来了欢乐与便利,但大多数人在饲养宠物狗时却由于无法理解宠物狗的真实想法而导致各种问题的出现。因此我们想通过这款基于AVR内核的宠物狗无线感知交互系统让宠物狗主人更加了解宠物狗,增进与身边动物的感情,进而实现人与动物的和谐共处。 1.2 项目背景/选题动机 在当今社会,宠物已融入到人们的日常生活之中。单就中国而言,宠物数量已突破一亿,平均每三个家庭就有一只宠物,此时宠物的作用已不再局限于为人类工作,而是作为家庭生活的一份子而存在。但随着宠物数量的上升,许多问题也逐渐暴露出来,宠物心理状况及健康状况的下降,流浪宠物数量的攀升,近年来甚至在网上出现虐待动物的视频。究其根本原因,在于人对宠物的心理状态缺少真正准确的了解,导致对其关注与关怀的缺失。此外,当主人外出时,往往无法携带宠物一同外出,难免对宠物的状态有所担忧,甚至宠物在家中发生事故却无从知晓。 宠物狗作为高等哺乳动物,和人一样拥有不同的心理状态,只是宠物狗不像人一样能用语言表达真实情感。对于不具备相关知识的普通人来说,这些行为常被宠物主人所忽视。然而作为群居动物,它们会通过一些较为明显的行为学标志来表达自己的心理。 综上所述,为引起更多人的关注,我们将结合当前热门新事物——微博,开发并完善这款基于AVR内核的宠物狗无线感知交互系统来解决上述问题,实现人与动物的和谐相处。 1.3 项目可行性分析 经过我们的初步评估,本项目可行性分析如下: 1.动物行为学可行性分析:动物行为学是研究动物对环境和其它生物的互动等问题的学科。研究的对象包括:动物的沟通行为、情绪表达、社交行为、学习行为、繁殖行为等。狗作为一种群居动物,其动物行为学特征较为明显,且由于犬类与人类有着紧密的联系,其行为学研究也已相当成熟。我们团队已和中国科学院心理研究所取得联系,该组织表示支持并提供行为学研究资料作为该系统的理论支持。根据他们所提供的资料,经整理后我们以宠物狗为重点撰写了《动物行为学分析概述》(详见附录)一文,并以此为标准设计系统中的各项环节。 2.电子工程学可行性分析:集成电路产业的高速发展使得当前内嵌无线通信模块的MCU已做到低功耗、低成本、小体积。基于MEMS架构的三轴加速传感器更是在高灵敏度的条件下达到同样的目标。利用两者所制成的无线传感节点只需占用8平方厘米甚至更小的面积,这样,宠物狗携带会更舒适、便捷。 3.市场可行性分析:根据我们的初步评估,该项目的实物成本大概在300元左右,面对目前高达一亿的宠物狗数量以及动辄上千的宠物狗消费市场而言,具有良好的市场前景。同时本项目所研究的范围在国内外尚属首例,具有极好的创新性,其实用性、创新度和面向主人及其宠物的贴心设计可以吸引来广大的客户。

    时间:2020-07-29 关键词: 交互系统 AVR

  • 基于爱特梅尔AVR的微型节能自动浸焊机的软硬件设计

    基于爱特梅尔AVR的微型节能自动浸焊机的软硬件设计

    一、项目概述 1.1 引言 目前,焊接插件式线路板一般采用波峰焊接方法和浸焊方法。波峰焊接机虽然焊接速度快、焊接质量高,但因其价格高、体积大、维护复杂等因素用于大批量加工的场合,特别适用于流水线作业的大型工厂。浸焊机具有结构简单、体积小、焊接质量好、成本低、可视性强等特点,用于小批量生产,特别适合用于中小企业、各种科研单位和教学场所。然而,在目前的市场当中存在的浸焊机仍然存在能源浪费严重的现象。 本设计在对目前市场上的各种浸焊机进行分析比较的基础上,针对目前市场已有浸焊机耗能大、不灵活等缺点,从节能环保的角度出发,通过采用爱特梅尔(Atmel)公司AVR-8位单片机(ATXMEGA64A3)设计出一种微型节能自动浸焊机。这种浸焊机具有环保节能、体积小、操作简单、自动化程度高、焊接质量好、成本低、可视性强、性价比高等特点,适合应用在教学、科研单位和小批量电路板生产与加工工厂,具有很强的市场竞争力,有很好的社会效益和经济效益。 1.2 项目背景/选题动机 改革开放以来,我国经济得到了突飞猛进的发展,电子产品已经成为人们生活中必不可少的一部分。电子产品的开发研制必然离不开印刷线路板的焊接。目前插件式线路板一般采用波峰焊接和浸焊两种方法。波峰焊接机因其价格高、体积大、维护复杂而只适用于流水线作业的大型工厂。浸焊机具有结构简单、焊接质量好、成本低等特点,广泛用于小批量生产中,特别适合用于中小企业,其应用范围广,有很强的市场潜力。 通过对目前焊接机市场的调查发现:目前市场上的浸焊机种类虽然很多,但是都存在体积较大、不灵活、耗能过多的缺点。没有专门适合用于教学与科研单位的小型浸焊机,在电子线路板焊接工艺的教学设备还属于空白,没有专门应用于教学和科研方面的演示教学设备。 因此研制并开发出一款低能耗、小型化、适合应用在教学与科研单位和小批量电路板生产的微型节能自动浸焊机具有很好的市场前景。 下表是目前市场上浸焊机主要种类: 浸焊机种类 主要特点 台式浸焊机 焊接质量高、结构简单、速度快、采用空气泵打入惰性气体的方法实现助焊剂和焊锡发泡的方法实现浸泡、通过烘箱对电路板进行预热、采用人工进行放入电路板、但是每个工作周期之间的等待时间过长,操作复杂。 立式平面浸焊机 焊接质量高、结构简单、封闭式工作环境、成本低、速度慢、采用夹板夹取电路板的工作方式进行浸泡助焊剂和焊锡、体积大、焊接准备时间比较长。 联合型浸焊机 体积大、结构简单、速度快、成本低、可以同时焊接多块电路板、具有简单的预热装置、用人工进行放入电路板、非自动运行、焊接准备时间比较长。 手推式浸焊机 以手工操作为主、结构简单、速度慢、效率低、危险性比较大,目前己基本被淘汰。 现有的浸焊机产品研究发现:目前市场上流通的浸焊机虽然具有结构简单、成本低等特点,也同时发现目前产品现有的缺陷: 1.体积较大,不灵活; 2.生产准备时间过长,其将焊锡和助焊剂变为液态的加热方法需要近两个小时; 3.缺少很直观的数字显示部分; 4.多数采用的是导轨滑动装置进行电路板焊接的操作,在整个的焊接过程中电路板在运行中的稳定性不够; 5.市场上的浸焊机都采用封闭式的操作环境,不便于学生对实际焊接工艺的理解,不适用于电子教学场所。 因此研制并开发出一款低能耗、小型化、操作简单、焊接质量好、成本低、可视性强,适合应用在教学与科研单位和小批量电路板生产的微型节能自动浸焊机具有很好的市场前景和很强的市场竞争力,并且具有良好的社会效益和经济效益。

    时间:2020-07-29 关键词: 爱特梅尔 浸焊机 AVR

  • 基于AVR技术的智能家居管理系统介绍

    基于AVR技术的智能家居管理系统介绍

    一、项目概述 1.1 引言 10多年前,比尔·盖茨花费了1亿美元打造了一个梦幻般的智能家居系统,这个系统中包括了智能控制、安防系统以及数字视听娱乐等功能。 随着互联网技术和信息通讯技术的飞速发展,信息化、智能化的浪潮正在席卷世界的每一个角落,数字化家园进入豪宅,它正全方位地改变着全社会。人们对家的需求已不仅仅局限于生活的舒适和安全,把网络通讯、信息处理与空气环境和家庭电器控制融入到一起简单操作与享受,乃是人们现在的渴望与追求。 1.2 项目背景/选题动机 随着网络的发展和智能家居的推广,人们都越来越需求一套高智能化、安全化、网络化控制的智能家居系统。本系统采用了红外遥控技术和GSM远程数据传输技术,不仅实现了实时控制,还实现了远程控制,不仅实现了基本家用电器的控制,还实现了更为舒适的生活环境的布置和安全防范的监控。 二、需求分析 2.1 功能要求 1)家庭智能终端 家庭智能终端集成了智能家居的所有子系统,功能强大,是家里的总控制器。对外与别墅门口机连接,实现可视对讲、门禁开锁;与户外监视器连接,实现周界的视频监控;通过互联网、电话网络可与外界信息交互,实现网络远程控制,电话自动报警等。对内通过有线网络,控制灯光照明、家用电器、电动窗帘、家庭场景设置;通过布线与各种探测器,监视器连接,实现家庭防盗、燃气泄漏报警,网络远程监控。 2)全宅背景音乐 每个房间都可以独立听音乐、切换音源、调节音量大小而互不干扰,音视频数字交换机内置MP3和FM调频立体声收音机功能,实现不同区域单独控制音源,控制喇叭(分别在客厅,主卧等) 3)智能照明控制 实现对全宅灯光的智能管理、轻松控制,可以用遥控等多种智能控制方式实现对全宅灯光状态的控制,调光及多种一键式灯光场景效果的实现;具有集中控制、灯光情景控制、组合控制、远程控制等功能;可以根据自己喜好,随意进行个性化的灯光设置,创造不同场景氛围。 4)智能家电控制 实现对家中电器的智能控制,使用一个遥控器即可对电视、空调、热水器等家电控制,也可利用固定电话或手机实施远程控制。 5)电话远程控制 将家中电话线与电话远程控制器串连,即可接收来自远程电话的语音控制信息,按照预先约定的按键操作,用户可在任何地方,通过使用固定电话或移动电话对家中的空调、电灯、热水器等家用电器实行远程控制,同时,它不影响电话的正常使用。 6)智能电动窗帘 用户可以本地手动、也可以使用遥控器,家庭智能终端、电话远程、网络控制窗帘的开启、关闭。 7)防盗报警门禁 对家庭人身、财产等安全进行实时监控,发生入室盗窃、火灾、煤气泄漏以及紧急求助,自动拔打用户设定的电话(最多8路号码),通过语音及时报告险情 8)电脑远程控制 通过电脑终端在任何地方都可以实现对家庭PC机发送相应的信号,进行有效地控制,从而达到对家电等的控制。 2.2 性能要求 本系统采用红外遥控技术和GSM远程监控技术,用一个通用红外遥控器控制所有联网设备,如灯光控制、空调、各种电器电源、音乐、窗帘、门锁等,各个电器可通过轻触式开关直接控制,同时,灯光亮度不仅可以通过光强传感器智能控制,还可以通过遥控器调节;GSM远程监控技术实现通过TC/IP编程用远程电脑终端直接控制各个电器的开启状态,也可以实现防盗报警和各种安全报警。

    时间:2020-07-29 关键词: 智能家居 AVR

  • 浅谈AVR和ARM相同点与不同点

    浅谈AVR和ARM相同点与不同点

    这里我们讨论的AVR和ARM都是泛指,就是说,包括所有机器指令集和这两个体系的都通用的众多芯片,不单单指某项技术或者某块芯片。 首先是相同点,两者都是现代的CPU设计范例,基于RISC的指导思想,在体系设计初期时就充分考虑到了CPU内核面积,速度,高级语言支持等很多因素。又吸取了51、x86等20年前就商业化的体系所暴露出的问题,所以从现代眼光来看,都是非常先进的设计。最重要,GCC对ARM和AVR都提供了相当好支持,而且可以免费使用。网上,特别是外国网上都有很多开放资源可以参考。两者在国内都属于市场引入阶段。销售方面,各有两大著名国内MCU公司做代理,而且巧合的是都是来自广东的奸商(哈,开玩笑,勿当真)。 AVR和ARM的区别就比较多了: ARM是IP核,可供各大芯片商集成到各自的设计中,好比是软件语言中的C++,如果你想换一家厂商或者某家的货太贵,都会有其它的厂商来竞争,至少从理论上,你不会被一家厂商套住。 AVR这方面就差点,ATMEL一家,别无分号。你只能在他的系列中选一个型号,无法选厂家。好比是软件语言中的Java,虽然现在免费(指Java的SDK,不是AVR)或价格低,但市场前景更多的掌握在厂商手中。 实际产品成本方面,AVR优于ARM,毕竟AVR是8位机,配什么外设都便宜,由于速度比ARM低,PCB版也好设计,20MHz的数字电路基本上只要通就行了,不用过多考虑信号完整性什么的。而ARM的速度能轻易上100MIPS,32位的CPU也不是吹的,速度上AVR根本没法比,不过带来的问题就多了,要4层PCB,而且外设也贵多了。 功能方面,ARM大大优于AVR,ARM可以做PDA,手机,AVR显然不行,最糟糕的是ARM上可以跑Linux,Linux可以做多少事啊,虽说国内实际在ARM平台上跑出Linux而又愿意公开技术的人几乎没有(我正在努力朝这个方向发展),但前途绝对是光明的。功能上的优势意味着ARM比AVR有着更广的应用范围,所以,双龙耿先生所说的“中学用AVR”如果是对的话,大学里就应该用ARM。 外设方面AVR稍强,实际上我们可以看到Atmel公司的基于ARM核的AT91M55800A包括了很多AVR的外设,但还缺TWI/I2C,可变增益ADC,EEPROM等好用的部件。但毫无疑问,ARM的外扩外设能力比AVR强的多,所以外设方面算平手吧 操作系统和软件源码资源方面,ARM拜Linux之赐,比AVR有优势点。但AVR上的嵌入式操作系统也不是没有,uC/OS-II就不错,如果能在Mega8515等便宜的芯片上跑起来的话,我看350元的ARM版也难卖,这一点双龙不知有没有计划? 调试手段方面,ARM应该优于AVR,AVR就一个JTAG接口的仿真器我个人还可以买一下,但所支持芯片有限,ARM方面书上有相当多的方法调试,这里我不熟也缺经验,就不瞎说了。 最后来个有个性的结尾,鉴于GCC对AVR和ARM的支持都很好,所以我决定都好好学,这里顺便给GCC打个广告,大家也看得出RISC的MCU最好还是直接使用C语言,GCC编译器显然是最明智的选择。 这样,你对arm和AVR的联系与区别有理解了吗?

    时间:2020-07-17 关键词: ARM AVR

  • AVR C语言代码的优化方法

    AVR C语言代码的优化方法

    如何优化AVR当中的C语言代码呢?篇文章将会介绍几种方法。 1、选择合适的算法和计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,都可以大大提高程序执行的效率。.选择一种合适的数据结构也很重要,比如你在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。 数组与指针语句具有十分密码的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。但是在Keil中则相反,使用数组比使用的指针生成的代码更短。。 2、使用尽量小的数据类型 能够使用字符型(char)定义的变量,就不要使用整型(int)变量来定义;能够使用整型变量定义的变量就不要用长整型(long int),能不使用浮点型(float)变量就不要使用浮点型变量。当然,在定义变量后不要超过变量的作用范围,如果超过变量的范围赋值,C编译器并不报错,但程序运行结果却错了,而且这样的错误很难发现。 在ICCAVR中,可以在Options中设定使用printf参数,尽量使用基本型参数(%c、%d、%x、%X、%u和%s格式说明符),少用长整型参数(%ld、%lu、%lx和%lX格式说明符),至于浮点型的参数(%f)则尽量不要使用,其它C编译器也一样。在其它条件不变的情况下,使用%f参数,会使生成的代码的数量增加很多,执行速度降低。 3、使用自加、自减指令 通常使用自加、自减指令和复合赋值表达式(如a-=1及a+=1等)都能够生成高质量的程序代码,编译器通常都能够生成inc和dec之类的指令,而使用a=a+1或a=a-1之类的指令,有很多C编译器都会生成二到三个字节的指令。在AVR单片适用的ICCAVR、GCCAVR、IAR等C编译器以上几种书写方式生成的代码是一样的,也能够生成高质量的inc和dec之类的的代码。 4、减少运算的强度 可以使用运算量小但功能相同的表达式替换原来复杂的的表达式。如下: (1)、求余运算。 a=a%8; 可以改为: a=a&7; 说明:位操作只需一个指令周期即可完成,而大部分的C编译器的“%”运算均是调用子程序来完成,代码长、执行速度慢。通常,只要求是求2n方的余数,均可使用位操作的方法来代替。 (2)、平方运算 a=pow(a,2.0); 可以改为: a=a*a; 说明:在有内置硬件乘法器的单片机中(如51系列),乘法运算比求平方运算快得多,因为浮点数的求平方是通过调用子程序来实现的,在自带硬件乘法器的AVR单片机中,如ATMega163中,乘法运算只需2个时钟周期就可以完成。既使是在没有内置硬件乘法器的AVR单片机中,乘法运算的子程序比平方运算的子程序代码短,执行速度快。 如果是求3次方,如: a=pow(a,3.0); 更改为: a=a*a*a; 则效率的改善更明显。 (3)、用移位实现乘除法运算 a=a*4; b=b/4; 可以改为: a=a<<2; b=b>>2; 说明:通常如果需要乘以或除以2n,都可以用移位的方法代替。在ICCAVR中,如果乘以2n,都可以生成左移的代码,而乘以其它的整数或除以任何数,均调用乘除法子程序。用移位的方法得到代码比调用乘除法子程序生成的代码效率高。实际上,只要是乘以或除以一个整数,均可以用移位的方法得到结果,如: a=a*9 可以改为: a=(a<<3)+a 5、循环 (1)、循环语 对于一些不需要循环变量参加运算的任务可以把它们放到循环外面,这里的任务包括表达式、函数的调用、指针运算、数组访问等,应该将没有必要执行多次的操作全部集合在一起,放到一个init的初始化程序中进行。 (2)、延时函数: 通常使用的延时函数均采用自加的形式: void delay (void) { unsigned int i; for (i=0;i<1000;i++) ; } 将其改为自减延时函数: void delay (void) { unsigned int i; for (i=1000;i>0;i--) ; } 两个函数的延时效果相似,但几乎所有的C编译对后一种函数生成的代码均比前一种代码少1~3个字节,因为几乎所有的MCU均有为0转移的指令,采用后一种方式能够生成这类指令。在使用while循环时也一样,使用自减指令控制循环会比使用自加指令控制循环生成的代码更少1~3个字母。 但是在循环中有通过循环变量“i”读写数组的指令时,使用预减循环时有可能使数组超界,要引起注意。 (3)while循环和do…while循环 用while循环时有以下两种循环形式: unsigned int i; i=0; while (i<1000) { i++; //用户程序 } 或: unsigned int i; i=1000; do i--; //用户程序 while (i>0); 在这两种循环中,使用do…while循环编译后生成的代码的长度短于while循环。 6、查表 在程序中一般不进行非常复杂的运算,如浮点数的乘除及开方等,以及一些复杂的数学模型的插补运算,对这些即消耗时间又消费资源的运算,应尽量使用查表的方式,并且将数据表置于程序存储区。如果直接生成所需的表比较困难,也尽量在启了,减少了程序执行过程中重复计算的工作量。 7、其它 比如使用在线汇编及将字符串和一些常量保存在程序存储器中,均有利于优化

    时间:2020-07-17 关键词: C语言 AVR

  • AVR单片机的学习思路,你需要收藏

    AVR单片机的学习思路,你需要收藏

    什么是AVR单片机?应该如何取学习?学习单片机的小伙伴都知道,衡量单片机性能好坏的指标主要有:可靠性好、功能强、高速度、低功耗和低价位,依靠这几点,作为单片机家族中性能较高的AVR,你真的能理解吗? AVR单片机产生背景 早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的 CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观。 AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,抛弃复杂指令计算机(CISC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。当然这种速度上的升跃,是以高可靠性为基础的。 AVR单片机结构 AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。提高了指令执行速度(1Mips/MHz),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。故AVR单片机在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。 AVR单片机特性 ①哈佛结构,具备1MIPS / MHz的高速运行处理能力; ②超功能精简指令集(RISC),具有32个通用工作寄存器,克服了如8051 MCU采用单一ACC进行处理造成的瓶颈现象; ③快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发; ④作输出时与PIC的HI/LOW相同,可输出40mA(单一输出),作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10mA-20mA灌电流的能力; ⑤片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠; ⑥大部分AVR片上资源丰富:带E2PROM,PWM,RTC,SPI,USART,TWI,ISP,AD,Analog Comparator,WDT等; 从上面介绍来看,性价比高、内置丰富、直插封装、支持仿真,值得大家在开发中使用,是目前性价比最高的芯片之一。以上就是AVR单片机的解析,希望能给大家帮助。

    时间:2020-05-13 关键词: 寄存器 avr单片机 AVR

  • 解析AVR单片机为何要写1作为清0中断标志位

    下面是我个人的分析和解释,供参考。 1。首先从硬件上的考虑,通常的读写处理单元是以8BIT字节为单位的,因为数据总线一般是8位的倍数。这样对位的操作就不方便,不能直接写1位(会改变其它的位),需要先读到寄存器,然后改动1位,最后回写,需要更多的时间。 2。对于RAM操作一般采用直接写的方式,所以对RAM基本上没有直接的位操作指令。而对于寄存器是可以直接位操作的,但如果对所有的寄存器都能实现位操作,那么硬件结构上就非常复杂和庞大了,所以必须采用一种折中的处理方法。 3。现在的趋势是采用C语言编写系统程序,而标准的C中,没有位变量的概念,最小的单位也是字节。因此硬件的设计上面也要考虑能发挥C语言的优势。 以上是我分析的原因。因为已经超出了我研究的方向(我侧重于应用),可能不全面或有偏差。下面回到AVR本身。 我们可以注意到: 1。AVR没有“位”空间,也就是说没有单独的“位”地址,所有的位寻址是基于8位的寄存器的,所以基本寻址方式是以寄存器为主的。 2。因此AVR没有专门的位寻址指令,它本身的位操作指令很少,都是在寄存器寻址的基础上,对寄存器的某位进行操作。 3。除了对状态寄存器SREG中的位有直接的操作指令外(SREG太特殊了,必须要有专用的位操作指令),能够对其它寄存器的位操作的指令只有2个。 a)BST、BLD。这个指令的周期是1CK,他是将SREG中的T标志位与32个通用寄存器的位之间交换数据的指令。如果要对32个寄存器的1位进行设置的话(比如置1),必须先使用指令将SREG中的T置1,然后使用BLD指令将T的值写到寄存器的某位。需要2个CK时间。 b)SBI、CBI。这2条指令是对前32个(注意:仅对前32个I/O空间!)I/O空间的寄存器的位进行设置的指令。这2个指令的执行时间是2个CK。AVR对寄存器操作的指令大多数都是1个CK,而这2个指令为何需要2个CK?原因在与写的时候还是8位一起写,因此改变1位需要先读,修改1位,再回写。这样保证了其它位不变,但时间需要2个CK了。 4。正是由于第3点(b),所以PA、PB、PC、PD等I/O口的寄存器均在前32个I/O空间,这样就实现了方便的单独的按位控制I/O口了。 5。不同C编译器,位处理是不同的。ICC、IAR基本没有扩展位处理,按标准C来处理,因为他们考虑的可移植性更加多些。而CVAVR扩展了位变量(放在32个工作寄存器中)和位操作(仅能对I/O空间前32个寄存器),因此用户使用起来更方便些。但要注意,对I/O空间后32个寄存器,CVAVR也不能实现位操作的。 最后看一下中断标志位的处理。在AVR中对中断标志位的处理是根据不同情况采用不同的处理方法的,在上面的英文说明中已经给出了解释。有的是进入执行中断由硬件清除,有的是读某个寄存器后由硬件清除。而软件清除通常是写“1”,为什么? 看一下M16的手册,发现外部中断标志寄存器GIFR(0X3A)、和T/C的中断标志寄存器TIFR(0X38),都在I/O空间的后32个地址中,而且全部是中断标志寄存器。因此不管是ICC、IAR、还是CVAVR,肯定不能使用SBI、CBI指令对位操作了,只能是对1个寄存器8位同时写操作了。 那么,通常在C中如何改变1位置1呢?通常大家认为正确的语句是:XXXX |= 0B00000001;其功能是将XXXX先读出,然后同0B00000001或,使最低位为1,其它位保持不变。实际需要3条汇编指令的。改变1位置0:XXXX &= 0B11111110;同样需要3条汇编指令的。 AVR采用写“1”清“0”中断标志位(写“0”不影响标志位),那么语句就可以直接使用TIFR = 0B00000001了,只需要2条汇编。将最低位的标志位清“0”,同时保证了其它标志位的不变。(!!!注意,反而使用TIFR |= 0B00000001是错误的!!!因为,如果其它的位本身是1的话,这样反而也被清掉了) 另外,写“0”清“0”中断标志位的话,那么写“1”到中断标志位的话应该如何定义呢?中断标志位应该是硬件置1的,如果软件可以置1,会带来更多的麻烦。

    时间:2019-10-29 关键词: 电源技术解析 AVR 单片机

  • 最强pic单片机分析,pic单片机、AVR、51系列单片机的酸甜苦辣

    1、51系列单片机的优缺点分析 51系列是应用最广泛的单片机,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势。世界有许多著名的芯片公司都购买了51芯片的核心专利技术,并在其基础上进行性能上的扩充,使得芯片得到进一步的完善,形成了一个庞大的体系,直到现在仍在不断翻新,把单片机世界炒得沸沸扬扬。 51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。51系列在片内RAM区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合128个位,相应位地址为OOH~7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可。 51系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精度还是能满足要求的,用的较多。作乘法时,只需一条指令即可。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。 51系列的I/O脚的设置和使用非常简单,但高电平时无输出能力,可谓有利有弊。故其他系列的单片机(如PIC系列、AVR系列等)对I/O口进行了改进,增加了方向寄存器以确定输入或输出,但使用也变得复杂。 同时,原51系列也有许多值得改进之处,如运行速度过慢等。当晶振频率为12MHz时,机器周期达1μs,显然适应不了现代高速运行的需要。华邦公司(Winbond)生产的产品型号为W77系列和W78系列,W78系列与AT89C系列完全兼容。W77系列为增强型,对原有的8051的时序作了改进,每个机器周期从12个时钟周期改为4个周期,使速度提高了三倍,同时,晶振频率最高可达40MHz。W77系列还增加了看门狗WatchDog、两组uART、两组DVTR数据指针、ISP等多种功能。 2、PIC单片机的优缺点分析 PIC单片机CPU采用RISC结构,分别有33、35、58条指令(视单片机的级别而定),属精简指令集。而51系列有111条指令,AVR单片机有118条指令,都比前者复杂。采用Haryard双总线结构,运行速度快(指令周期约160~200nS),它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期(个别除外),这也是高效率运行的原因之一。此外,它还具有低工作电压、低功耗、驱动能力强等特点。 PIC系列单片机的I/O口是双向的,其输出电路为CMOS互补推挽输出电路。I/O脚增加了用于设置输入或输出状态的方向寄存器,从而解决了51系列I/O脚为高电平时同为输入和输出的状态。当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸人电流达25mA,高电平输出电流可达20mA。相对于51系列而言,这是一个很大的优点,它可以直接驱动数码管显示且外电路简单。它的A/D为10位,能满足精度要求。具有在线调试及编程功能。 该系列单片机的专用寄存器)并不像51系列那样都集中在一个固定的地址区间内(80~FFH),而是分散在四个地址区间内,即存储体0(Bank0:00-7FH)、存储体1(Bankl:80-FFH)、存储体2(Bank2:100-17FH)、存储体3(Bank3:180-1FFH)。只有5个专用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4个存储体内同时出现。在编程过程中,少不了要与专用寄存器打交道,得反复地选择对应的存储体,也即对状态寄存器STATUS的第6位(RPl)和第5位(RPO)置位或清零。这多少给编程带来了一些麻烦。对于上述的单片机,它的位指令操作通常限制在存储体0区间(00~7FH)。数据的传送和逻辑运算基本上都得通过工作寄存器w(相当于5l系列的累加器A)来进行,而51系列的还可以通过寄存器相互之间直接传送(如:MOV30H,20H;将寄存器20H的内容直接传送至寄存器30H中),因而PIC单片机的瓶颈现象比51系列还要严重,这在编程中很有感受。 综合来说PIC单片机应该说有三个主要特点: (1)总线结构:MCS-51单片机的总线结构是冯-诺依曼型,计算机在同一个存储空间取指令和数据,两者不能同时进行;而PIC单片机的总线结构是哈佛结构,指令和数据空间是完全分开的,一个用于指令,一个用于数据,由于可以对程序和数据同时进行访问,所以提高了数据吞吐率。正因为在PIC单片机中采用了哈佛双总线结构,所以与常见的微控制器不同的一点是:程序和数据总线可以采用不同的宽度。数据总线都是8位的,但指令总线位数分别位12、14、16位。 (2)流水线结构:MCS-51单片机的取指和执行采用单指令流水线结构,即取一条指令,执行完后再取下一条指令;而PIC的取指和执行采用双指令流水线结构,当一条指令被执行时,允许下一条指令同时被取出,这样就实现了单周期指令。 (3)寄存器组:PIC单片机的所有寄存器,包括I/O口,定时器和程序计数器等都采用RAM结构形式,而且都只需要一个指令周期就可以完成访问和操作;而MCS-51单片机需要两个或两个以上的周期才能改变寄存器的内容。 3、AVR单片优缺点分析 AVR单片机其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作业。AVR单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通用寄存器一共32个(RO-R31),前16个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。而在5l系列中,它所有的通用寄存器(地址00-7FH)均可以直接与立即数打交道,显然要优于前者。 AVR系列没有类似累加器A的结构,它主要是通过R16~R31寄存器来实现A的功能。在AVR中,没有像5l系列的数据指针DPTR,而是由X(由R26、R27组成)、Y(由R28、.R29组成)、z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相当于有三组DPTR),而且还能作后增量或先减量等的运行。 在51系列中,所有的逻辑运算都必须在A中进行;而AVR却可以在任两个寄存器之间进行,省去了在A中的来回折腾,这些都比51系列强。 AVR的专用寄存器集中在$00~$3F地址区间,无需像PIC那样得先进行选存储体的过程,使用起来比PIC方便。AVR的片内RAM的地址区间为$0060~$00DF(AT90S23131)和$0060~$025F(AT90S85l5、AT90S8535),它们占用的是数据空间的地址,这些片内RAM仅仅是用来存储数据的,通常不具备通用寄存器的功能。当程序复杂时,通用寄存器R0一R31就显得不够用;而51系列的通用寄存器多达128个(为AVR的4倍),编程时就不会有这种感觉。 AVR的I/O脚类似PIC,它也有用来控制输入或输出的方向寄存器,在输出状态下,高电平输出的电流在10mA左右,低电平吸入电流20mA。虽不如PIC,但比51系列强。 综合来看,AVR与51、PIC单片机相比具有一系列的优点,用通俗的说法主要体现在这几个方面: (1)、在相同的系统时钟下AVR运行速度最快; (2)、所有AVR单片机的FLASH、EEPROM蓄存器都可以反复烧写、支持在ISP在线编程(烧写),入门费用非常少; (3)、片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,使得电路设计变得非常简单; (4)、每个IO口作输出时都可以输出很强的高、低电平,作输入时IO口可以是高阻抗或者带上拉电阻; (5)、片内具有丰富实用的资源,如AD模数器、DA数模器,丰富的中断源、SPI、USART、TWI通信口、PWM等等; (6)、片内采用了先进的数据加密技术,大大的提高了破解的难度; (7)、片内FLASH空间大、品种多,引脚少的有8脚,多的有64脚等各种封装 (8)、部分芯片的引脚兼容51系列,代换容易,如ATtiny2313兼容AT89C2051,ATmega8515/162兼容AT89S51等 四、单片机的选择。 各种单片机都有各自的优缺点,应根据需要选择。选择单片机原则如下: 1. 单片机的基本参数例如速度,程序存储器容量,I/O引脚数量 2. 单片机的增强功能,例如看门狗,双指针,双串口,RTC(实时时钟),EEPROM,扩展RAM,CAN接口,I2C接口,SPI接口,USB接口。 3. Flash和OTP(一次性可编程)相比较,最好是Flash。 4. 封装?IP(双列直插),PLCC(PLCC有对应插座)还是贴片。DIP封装在做实验时可能方便一点。 5. 工作温度范围,工业级还是商业机。如果设计户外产品,必须选用工业级。 6. 功耗,比如设计并口加密狗,信号线取电只能提供几个mA,用PIC就是因为低功耗,后来出了MSP430也不错。 7. 工作电压范围。例如设计电视机遥控器,2节干电池供电,至少应该能在1.8-3.6V电压范围内工作。 8. 供货渠道畅通。能申请样片,小批量购买有现货。最好像标准51,中发里随便找个柜台就能买到(我在北京) 9. 价格低。 10. 有服务商,像周立功公司推Philips,双龙公司推AVR,都提供了很多有用的技术支持,起码烧写器有地方买。 11. 烧录器价格低,如果是ICP(把单片机放在烧录器上编程)能否利用现有的烧录器,如果是表贴封装,买一个转接座也很贵,至少得一二百元。能否ISP(在系统编程,即把芯片先焊到板子上再通过预留的ISP接口编程),一般ISP编程器比较便宜大约一二百元甚至几十元。 12. 仿真器便宜。对于FLASH型单片机,仿真器不是必备的。但是对于OTP(一次性可编程)型单片机,必须购买或者租用仿真器。 13. 单片机汇编语言是自己熟悉的,并且能支持C语言。编程环境要像keil一样好用,并且还是免费的。 14. 网站速度快,资料丰富。包括芯片手册,应用指南,设计方案,范例程序。最好有中文,像Atmel就不错。 15. 保密性能好,查一下专业解密网站上的黑名单,再发个mail咨询一下解密价格。 16. 抗干扰性能好。我曾经把XXC52改为S52后发现抗干扰性能下降,只好改回去。 17. 和其他外设芯片放在一起的综合考虑

    时间:2019-07-10 关键词: pic单片机 51系列单片机 AVR

  • AVR单片机特性简介

    AVR单片机特性简介

     一、 AVR单片机简介 1.1、AVR的诞生 AVR单片机是ATMEL公司在1997年研发的增强型内置Flash的RISC精简指令集高速单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。 1.2、AVR的特点 采用RISC精简指令系统 RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。RISC 并非只是简单地去减少指令,而是通过将计算机的结构变得更加简单合理来提高计算机的运算速度,目前市面上常见的微控制器大部分都使用的是RISC指令集,包括AVR以及ARM等。RISC优先选取使用频率最高的简单指令,避免复杂指令,并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。由于AVR 采用RISC的这种结构,使AVR系列单片机都具备了1MIPS/MHz(百万条指令每秒/兆赫兹)的高速处理能力。可以适用于对计算能力要求更高的场景下。 采用内嵌高质量的Flash程序存储器 高质量的Flash擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。内嵌长寿命的EEPROM可以长期保存关键数据,避免断电丢失。片内大容量的RAM不仅能满足一般场合的使用,同时更有效的支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部RAM。 I/O管脚全部带可设置的上拉电阻 这样的话可以单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。 片内具备多种独立的时钟分频器 可分别供URAT、I2C、SPI使用。其中与8/16位定时器配合的具有多达10位的预分频器,可通过软件设定分频系数提供多种档次的定时时间。 增强性的高速USART 具有硬件产生校验码、硬件检测和校验、两级接收缓冲、波特率自动调整定位、屏蔽数据帧等功能,提高了通信的可靠性,方便程序编写,更便于组成分布式网络和实现多机通信系统的复杂应用,串口功能大大超过MCS-51单片机的串口,并且由于AVR单片机速度快,中断服务时间短,故可实现高波特率通讯。 稳定的系统可靠性 AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。 二、 AVR单片机系列简介 AVR单片机系列齐全,可适用于各种不同场合的要求,共有3个档次,分别为: 低档Tiny系列:主要有Tiny11/12/13/15/26/28等; 中档AT90S系列:主要有AT90S1200/2313/8515/8535等;(正在淘汰或转型到Mega中) 高档ATmega:主要有ATmega8/16/32/64/128(存储容量为8/16/32/64/128KB)以及ATmega8515/8535等。 AVR器件引脚从8脚到64脚不等,还有各种不同封装可供用户根据实际情况进行选择选择。 三、 AVR单片机的优势 哈佛结构,具备1MIPS / MHz的高速运行处理能力; 超功能精简指令集(RISC),具有32个通用工作寄存器,克服了如8051 MCU采用单一ACC进行处理造成的瓶颈现象; 快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发; 作输出时与PIC的HI/LOW相同,可输出40mA,作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10mA-20mA灌电流的能力; 片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠; 大部分AVR片上资源丰富:带E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等; 大部分AVR除了有ISP功能外,还有IAP功能,方便升级或销毁应用程序。 四、 AVR单片机的应用 基于AVR单片机的优秀的性能与以上的特点,可以看出,AVR单片机目前可以适用于大部分嵌入式应用场景中,同时由于AVR单片机的封装形式多样,可以用于教学当中,例如使用双列直插型单片机可以让学生自己动手设计焊接一个单片机的最小系统,学习软硬件技术。

    时间:2019-06-08 关键词: 嵌入式 基础教程 AVR 单片机

  • 基于AVR的实验加载闭环控制系统

    基于AVR的实验加载闭环控制系统

      分离式液压千斤顶在生产建设、科学实验等各类工程结构加载工作中具有广泛的用途。  该设备一般由电动高压油泵+压(拉)千斤顶组成,本文论及的加载系统规格如表1所示。  油泵电机直接带动泵轴旋转,柱塞作往复运动,进油阀/排油阀工作,液压油通过高压油管进入千斤顶。用户可通过泵站上的手柄,人工转动泵内卸荷阀处于不同位置,实现系统的加载/卸载、推力/拉力及加载速率和稳压作业。  在对力和位移数值或稳压时间等精度要求较高的科研实验加载场合,显然这种仅靠手工操作的方式难以胜任。给该设备增设电脑测控系统就成为一项与时俱进的技术革新,也是提高此类设备性价比的最佳方案。  1 下位机  由ATmega128构成下位机控制核心(见图1),其主要是对各通道放大模块传入的工作信号进行A/D变换,并根据上位机的指令驱动步进电机,达到控制执行系统的工作目的。  1.1 数据采集  力和位移信号的测试由电阻应变计组成的电桥传感器完成,信号放大器采用AMP1型放大模块。此两者间的适当匹配对单片机能否顺利执行数据采集工作至关重要。技术关键是对电桥平衡的调控。信号进入单片机后,若有少量的偏移电压可通过软件作些补偿,若偏移量过大会造成此通道无法工作。因此有必要在放大模块的前端,用电位器把偏移较大的模拟信号调整过来。调零电路如图2所示。  1.2 设备控制  油泵手柄的转动,以电动替代手动是设备控制的技术关键。把手柄板固定在转轴上,板上布置若干位置电极点,用步进电机加齿轮传动可以解决感知和移动手柄位置的问题,如图3所示。  单片机Mega128的PWM、时钟和正反转信号,通过光耦进入L297,产生相序信号,经由L298N的全桥驱动,使得步进电机按单片机控制带动齿轮一起转动。驱动步进电机电路图如图4所示。  1.3 A/D及串口通信  在串口0初始化编程中,ICCAVR用代码UCSROB=(1<

    时间:2019-04-02 关键词: 控制系统 嵌入式开发 闭环 加载 AVR

  • AVR单片机中TWI的模块化检测系统设计

    AVR单片机中TWI的模块化检测系统设计

    摘要:主要利用AVR单片机中的TWI模块,构建了一个基于TWI总线的模块化检测系统。通过利用TWI总线相对于I2C总线的强大灵活性,增加了容错处理程序,提高了总线的稳定性和可靠性,使得整个检测系统的抗干扰性更强。在从机TWI程序设计上使用TWI中断,消除了等待TWINT置住所浪费的时间,提高了程序的执行效率。引言 随着设备信息化和智能化程度的不断提高,设备间的通信变得愈加重要。目前,设备间的通信,尤其是多个设备间的通信,大多数都是依靠各种不同标准的总线实现的。通过总线实现设备间的通信减少了物理连线,简化了硬件设计工作,同时也便于扩展。因此,总线,尤其是各种工业总线,得到了广泛的应用。在智能化嵌入式系统设计中,有时由于各种外围设备较多,也会应用总线解决通信的问题。当今最为常见的是由Philips公司开发的I2C总线,它用于连接微控制器及其外围设备,增加了系统的安全性,方便了管理。而Atmel公司的TWI接口是I2C总线基础上的继承和发展,它定义了自己的功能模块和寄存器,其寄存器各位功能的定义与I2C总线并不相同。另外TWI总线引入了状态寄存器,使得TWI总线在操作和使用上比I2C总线更加灵活。本文主要利用TWI总线强大的灵活性,设计了基于该总线的模块化检测系统,巧妙利用TWI状态寄存器,大大提高了TWI总线在该检测系统中的稳定性和可靠性。1 TWI模块简介 TWI通信接口简单灵活,功能强大,非常适合应用于微控制器系统。它支持主机和从机操作;器件可以工作于发送器模式或接收器模式;7位地址空间允许有128个从机;支持多主机仲裁;高达400 kHz的数据传输率;输出驱动器斜率受控;噪声抑制器可以抑制总线尖峰;从机地址以及公共地址完全可编程;睡眠时地址匹配可以唤醒AVR。 如图1所示,TWI模块包括控制单元、比特率发生器单元、地址匹配单元、总线接口单元和SCL和SDA引脚,位于粗线之中的寄存器都可以通过AVR数据总线进行访问。其中TWAR寄存器的高7位为从机地址。工作于从机模式时,TWI总线将根据这个地址进行响应。 TWI的两根线在工作时必须有上拉电阻,上拉电阻的实现既可以通过内部的上拉电阻使能,也可以通过在硬件设计时增加上拉电阻。在实际应用时最好在外部硬件上增加上拉电阻,以防止程序遗漏使能上拉电阻。 TWI可以工作于4种不同的模式,即主机发送模式(MT)、主机接收模式(MR)、从机发送模式(ST)和从机接收器模式(SR)。当TWI上出现多个主机时,就会发生多主机仲裁。TWI多主机仲裁相对I2C总线的多主机仲裁,其特点就是除了依靠自身硬件的监测之外,还可以通过软件读取TWSR状态寄存器来判断自己在总线中的精确状态,以便为下一步动作提供更精确的诊断依据。在编写TWI总线驱动程序时,需要注意,只有当时钟信号为高电平时,信号线SDA上的电平信息才有意义。2 模块化检测系统设计 模块化检测系统主要功能是检测各设备所采集到的相关信息,以便主机通过处理这些信息,给出相应的控制策略。如图2所示,主机使用的是ATmega128,从机使用的是ATmegal6。这种模块化检测系统的设计不仅简化了硬件设计,也在一定程度上简化了软件的设计,使得各个检测功能的程序在不同的设备上同时运行。3 TWI总线驱动程序3.1 主机驱动程序 在程序设计时,为了实现准确判断TWI工作状态,需要在一定情况下,尤其是在总线出现传输错误时,读取TWSR状态寄存器。同时为了增加程序的可读性,将各种模式所需的TWI总线状态进行宏定义。 图3是主机发送(MT)模式程序的流程。图4为主机接收(MR)模式程序流程。 为了保证TWI总线的稳定运行,只有发送模式(MT)和接收模式(MR)程序是不够的,还必须有一定的容错处理程序,以防止TWI总线在受到外界干扰时出现故障。考虑本文所设计的系统是主机与从机不会实时发生变化的总线网络系统,所以对于主机而言还要有容错处理程序,主要是MT、MR以及MT和MR之间切换时的容错处理程序。其具体代码如下: 容错处理主要是通过读取当前TWI总线的状态,针对不同的状态做出不同的处理。这个程序中对TWI总线处于错误状态时的处理最为重要,可以防止TWI总线进入死锁。容错处理程序同时也包含了MT和MR模式,在使用TWI总线时主机只需要调用该程序就可实现MT或MR模式。3.2 从机驱动程序 由于对于主机而言,等待TWINT置位在任何情况下都能在很短的时间内完成,所以对于MT和MR模式的程序都是通过软件查询TWINT位实现。但是对于从机而言,由于首先要接收主机发送的从机地址,并且主机并不是总是在访问同一个从机,所以从机在接收主机发送的地址时,如使用软件查询方法,势必要等待很长时间,这样就浪费了大量的时间。因此在从机ST和SR模式程序的设计时,需要使用TWI中断,这样在等待TWINT置位期间可以执行其他程序,有效地提高了程序的运行效率。图5为从机ST和SR模式程序流程,具体的ST和SR处理程序可以参考相关的设计手册,这里给出的只是ST和SR切换以及容错处理程序。当TWINT置位时,进入TWI中断服务程序。 在从机TWI总线程序设计时,在等待TWINT置位期间TWI总线可能因为外界干扰出现一些故障,所以容错处理程序不仅在TWI中断服务程序得到调用,在等待TWINT置位期间也要调用该程序。从机的容错处理程序代码如下:4 系统测试 在模块化检测系统测试时,主要使用了以下从机检测模块:3个超声波模块、电子罗盘、红外距离检测模块以及温度检测模块。在系统测试时针对TWI总线,主要测试了总线的传输速度、实时响应、出错率、抗干扰能力。测试时为便于观察各个观测量的状态,使用了LCD显示。测试过程中总线的比特率设定为100 kbps,通过观测LCD显示的变量,TWI总线实时响应速度比较快。在外加电磁干扰的条件下,总线只有在极少数开机时出现错误,主要原因是开机时出现的浪涌电流。结语 本文设计的模块化检测系统,利用TWI总线作为各个器件通信的媒介,并以此为基础构建总线式拓扑网络,简化了硬件和软件设计,缩短了系统的开发周期。在TWI总线驱动程序设计上,增加容错处理程序,使总线运行更加稳定和可靠,提高了系统的抗干扰能力。同时在从机TWI总线驱动程序设计时使用TWI中断,合理安排各个功能程序的执行时间,有效地提高了程序的运行效率。

    时间:2019-03-26 关键词: 检测系统 嵌入式处理器 机中 twi AVR

  • 基于AVR单片机的高精度频率调节器设计

    基于AVR单片机的高精度频率调节器设计

    摘要: 精确的频率控制是现代化工业生产与高精度测试的必备手段。基于AD9850可以发生优于1Hz频率精确度的信号,这对于频率测试来说至关重要。本文介绍的这种频率调节器由Atmel公司的AVR单片机Atmega16L作为控制核心,采用4×4键盘作为频率值输入设备。AVR单片机扫描键盘并且读入用户设定的频率值。随后,AVR单片机计算出AD9850的控制字,并且对AD9850发出指令。本文介绍的频率控制器可以通过“+1Hz”键和“–1Hz”键微调频率值。本文对频率控制器扩展了液晶显示模块,因此当前频率值可以被实时显示。它可以生成方波和正弦波。设计中使用了看门狗定时器防止程序进入死循环而不能正常工作。  1 引言  在现代化工业生产与高精度测试中,我们需要相当精确的频率来帮助判断设备性能指标。而且我们希望能够微调该频率。采用压控振荡器得到的频率不够精确,微调频率步骤烦琐,耗时漫长,因此有些测试项目限制了压控振荡器的使用。  Mega系列单片机是Atmel公司于2002年起陆续推出的。这款AVR增强型单片机具有速度快,抗干扰能力强,价格低廉等诸多优点。为了加快AVR单片机的软件编制,Atmel以及第三方提供的开发工具多种多样,程序开发方便有效。该单片机内部FLASH结构功能灵活,加锁后很难解密,可以最大限度地保护知识产权。AVR单片机可以广泛应用于通信、野外测试、汽车电子、医疗器械等领域,并且适用于各种低电压、低功耗的场合。  本文提出一种方法能够基于AVR单片机,采用AD9850提供精确到1Hz的频率信号,不但可以发生正弦波,也可以发生方波,从而为要求频率精度高的企业解决了难题。它以Atmel公司的AVR单片机Atmega16L作为核心,能够方便、准确地控制输出频率。由于AVR单片机实现了在线可编程,所以大大简化了设计步骤,加快了设计进程,同时不会烧毁、烧费芯片,节约了成本。  图1给出了该频率调节器的整体设计框图。用户通过4×4键盘设定频率值,AVR单片机使用I/O端口,扫描读入频率值。随后AVR单片机控制AD9850调节到用户要求的频率。AD9850的输出可以接电压比较器整形为方波,也可以经过低通滤波器限制带宽,输出正弦波形。AVR单片机同时控制液晶显示模块,使之实时显示当前频率。    图1. 频率调节器整体框图  2 控制核心与频率发生技术  2.1 控制核心  本设计采用了Atmel公司的AVR单片机Atmega16L作为控制核心。AVR单片机的单周期指令能够保证高的执行效率和低成本,是精简指令集CPU中的高性能器件。AVR单片机可以提供高达16 MIPS的执行时间,具有128K字节的可编程Flash存储器,同时具备4096字节的静态RAM。AVR单片机自带看门狗定时器,在强烈的电磁干扰条件下可以防止程序跑飞。本设计中采用的Atmega16L还具有以下特点:  · 内部包含有硬件乘法器,加快乘法运算速度;I/O端口引脚数多达32根;  · 支持在线可编程功能,不需要频繁从电路板插拔芯片;带有可编程的支持同步传输的UART端口;  · 支持三线传输SPI端口;具有方便的I2C总线端口,直接与Philips芯片接驳;  · 支持JTAG边界扫描电路;具有BOD低电压检测功能;  · 内部有8路10位的A/D变换器;具有4个PMW,可以协同或单独工作;  · 内部带有实时时钟电路;工作频率最高可达16MHz。  2.2 AD9850频率发生技术  AD9850是AD公司推出的低功耗直接数字频率合成器芯片,可以产生从直流到62.5MHz的宽频率信号,从投入市场到今天已经应用在雷达系统、低功耗频率源中。它良好的频率合成功能适合于应用在高精度测试中。本设计采用了AD9850作为波形发生器,具有体积小,功耗低的优点。  在控制流程中,AVR单片机为AD9850计算了频率控制字,并且将频率控制字写入其中。联合小键盘上的“+1Hz”键和“-1Hz”键,本设计使得频率可以精确到步长为1Hz的调节。它可以产生方波和正弦波。用户要求产生正弦波时,我们设计了低通滤波器用来滤除信号的高频分量。该低通滤波器还可以使用五阶椭圆滤波器实现。图2示出了本系统的AD9850电路设计图。PC2——PC5可以同时作为I2C总线端口。    图2 AD9850电路设计  3 输入设备与输出设备  3.1 键盘输入设备与相应软件  本设计采用了4×4键盘作为频率输入设备。由于按键个数少,只有16个,需要表示从1Hz — 10MHz的广泛频率,故在软件设计中采用了AVR单片机扫描方式。将端口A的8根I/O引脚全部作为扫描键盘使用。键盘定义除了0——9共10个数字之外,还定义了“退格”键、“全删”键、“输入”键、“+1Hz”键和“-1Hz”键,这样就可以极大地方便用户随时修改频率和微调频率。读入用户输入的频率值时,采用了延时防抖抗干扰的软件程序。扫描变量的初始值设置为0xFE,以低电平0依次变化实现扫描。本单片机键盘扫描的C代码如下所示:  sccode=0xFE;/*every scan initiative value,11111110*/  while(sccode!=0xEF)/*sccode is not 11101111,follow;or return 0*/  {  PORTA=sccode;/*send scan code 11111110 to portA*/  PORTA=sccode;/*send scan code 11111110 to portA*/  if((PINA&0xF0)!=0xF0)/*read portA,if high 4 bits are not 1111,key pressed in this line*/  {  recode=(PINA&0xF0)|0x0F;/*portA high 4 bits reserved,low 4 bits are 1111*/  while((PINA&0xF0)!=0xF0)  {};  /*read portA,if portA high 4 bits are not 1111,key pressed,  if key pressed,we must wait,wait for key released*/  return((~sccode)+(~recode));/*return row+column*/  }  else  {  sccode=(sccode<<1)|0x01;  /*scan code left shift 1 bit, add 1 to right,11111101*/  }  }  最终返回的扫描结果包括按键所在的行值和列值。判断步骤是:先将端口A的高4比特记录在扫描变量recode中,低4比特置为1111。再次读入端口A的高4比特,由此判断按键是否松开。用户还未松开按键时,高4比特当中有低电平0存在,此时只能循环等待。只有当用户松开按键之后,才将高4比特与低4比特进行按位反操作,并复合形成最终返回的扫描结果。如果没有检测到有按键按下,则将扫描变量sccode向左移位1比特,继续进行下一次扫描。  3.2 液晶显示模块  用户在多次进行输入频率以及“+1Hz”和“-1Hz”微调后,专注于观察信号输出对下一级电路的影响,往往忘了目前系统的输出频率。这样导致在精确测试中要求微调时也不知该向高调整还是向低调整。为了告知用户系统所处的当前频率,我们扩展了液晶显示模块,实现了当前频率在液晶显示模块上实时显示。液晶显示模块占用了单片机Atmega16L的PD0-PD7作为数据接口,采用了单片机的PB0-PB4作为控制端口。图3给出了液晶显示模块与控制器电路设计电路图。  PB0引脚选择液晶显示模块的数据存储器或指令存贮器,PB1引脚表明此次操作是读液晶显示模块还是写液晶显示模块,PB2则构成上升沿与下降沿完成读写时序。PB3负责选中液晶显示模块的左半部分,PB4负责选中右半部分,通常PB3与PB4都置为1。需要注意的是,在数据或指令准备好了之后,再让PB2进行电平变化,否则读写会出错。  本设计借助单片机Atmega16L的大容量程序存贮器,将英文字母和若干汉字的字型点阵作为数组存入单片机的程序存贮器中。需要显示某字符时直接调用数组,从而简化了设计,实现了英文、汉字以及图形的显示。本设计显示界面友好,操作可控性强。    图3 液晶显示模块与控制器电路设计  4 结论  为了方便现代化工业生产与精确的频率测试,我们设计了基于AVR单片机的高精度频率调节器。在本设计中,可以使用小键盘上的“+1Hz”键和“-1Hz”键,方便地进行频率精确到1Hz的调节。此频率调节器体积小而功能强,由Atmel公司的AVR单片机Atmega16L作控制核心,用户可随时调整系统输出频率。采用了4×4键盘输入用户设定的频率值,占位小而效率高,编制程序让AVR单片机扫描即可得到频率,省去了专用键盘接口芯片8279。液晶显示模块可实时显示当前频率,显示界面友好,操作可控性强。本系统可以产生方波和正弦波。  本设计的硬件与软件均已经应用在某频率测试生产线中。工业生产与测试使用表明,本设计简化了频率调节过程,用户使用方便,具有节电、低成本、抗干扰能力强、频率控制精度高速度快的特点。

    时间:2019-03-22 关键词: 频率 调节器 嵌入式处理器 AVR 单片机

  • 基于AVR单片机的数控直流稳压电源的设计

    基于AVR单片机的数控直流稳压电源的设计

    摘 要: 将单片机数字控制技术有机地融入直流稳压电源的设计中,设计出一款高性价比的多功能数字化通用直流稳压电源。详细介绍PWM输出、A/D采样、单片机等。该设计除了实现对电压的数字控制外,还具有高精度、多功能、液晶显示的特点。关键词: AVR单片机;直流稳压电源;电压表;数字控制 从20世纪90年代末起,随着对系统更高效率和更低功耗的需求,电信与数据通讯设备的技术更新推动电源行业中直流/直流电源转换器向更高灵活性和智能化方向发展。本文设计的直流稳压电源主要由单片机系统、键盘、数码管显示器、指示灯及报警电路、检测电路、D/A转换电路、直流稳压电路等部分组成。其中数控电源采用按键盘,可对输出电压及报警阈值以快慢两种方式进行设置,输出由单片机通过D/A控制驱动模块输出一个稳定电压。同时稳压方法采用单片机控制, 单片机通过A/D采样输出电压,与设定值进行比较,若有偏差则调整输出,越限则输出报警信号并截流。工作过程中,稳压电源的工作状态(输出电压、电流等各种工作状态)均由单片机输出驱动LCD显示,由键盘控制进行动态逻辑切换。以单片机为核心设计智能化高精度简易直流电源,电源采用数字调节,输出精度高,特别适用于各种有较高精度要求的场合。具有以下明显优点:(1)智能化程度更高,性能更完美;(2)控制灵活,系统升级方便;(3)控制系统的可靠性提高,易于标准化。1 直流稳压电源的基本原理 直流电源电路一般由电源变压器、整流滤波电路及稳压电路所组成。如图1所示。 稳压电路经常采用三端稳压器,应用电路如图2所示,只要把正输入电压U1加到LM7805的输入端,LM7805的公共端接地,其输出端便能输出芯片标称正电压U2。实际应用中,输入端和输出端与地之间除分别接大容量滤波电容外,通常还需在芯片引出脚根部接小容量电容到地。C1用于抑制自激振荡,C2用于压窄芯片的高频带宽,减小高频噪声。如图2所示。2 数控恒压源的实现方案 传统的直流稳压电源通过粗调波段开关及细调电位器来调节,并由电位表指示电压值的大小。这种稳压电源存在读数不直观、电位器易磨损、精度不高、不易调准、电位构成复杂、体积大等缺点,基于单片机控制的数控直流电源不但实现了直流稳压的功能,而且没有上述的缺点。2.1 设计要求 输出电压范围:0.0 V~9.9 V; 输出电压的调整方式:步进,步进数值为0.1 V; 显示方式:LCD1602液晶显示; 监测D/A的输出电压值。2.2 数控电源的方案 图3所示为数控电源的设计框图,其输出电压数值由键盘控制。通过键盘把需要输出的电压值以步进方式输入到单片机。这里电压采用单片机的PWM模拟电压输出。显示电路既可用来显示输出的电压值,也可用来显示键盘电路的调整过程。如果不满足输出电压的要求,将需要添加一个电压放大器。经过LM324线性转换后,得到所需电压值,另外对监测电压实际输出电压值进行采样,并将采样值通过单片机的A/D采样口送回单片机处理后显示。在该数字控制电源中,使用AVR芯片完成系统控制按键输入判断、电压数值显示以及对外部芯片的各种数字控制。3 数字控制部分 ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器;数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾;具有4通道的PWM以及8路10 bit ADC。 本系统的D/A选择常用的DAC0832。当其与单片机相连时电路和程序简单,只需把单片机的数据线与DAC0832的输入端直接相连即可。其各个引脚的连接及外围如图4所示。

    时间:2019-03-21 关键词: 嵌入式处理器 数控 直流稳压电源 AVR 单片机

  • 基于AVR单片机的可充电电池的放电监测

    摘 要:本文介绍avr单片机attiny12的主要性能特点,并利用它实现了可充电电池放电的自动监测。关键词:单片机;可充电电池;自动监测avr是增强型risc、内置flash的高性能8位单片机。设计上采用低功耗cmos 技术,而且在软件上有效支持c语言及汇编语言。其型号较多,可供不同场合选用。在8位mcu市场上,avr单片机具有最高的mips/mw能力。本文介绍attiny12单片机的主要性能特点及其在实际中的应用。attiny12单片机简介avr核将32个工作寄存器和丰富的指令集联结在一起。所有的工作寄存器都与算术逻辑单元alu直接相连,允许在一个时钟周期内执行的单条指令同时访问2个独立的寄存器。这种结构提高了代码效率,使avr得到了比普通cisc单片机高将近10倍的性能。attiny12工作于空闲模式时,cpu将停止运行,而定时器/计数器和中断系统将继续工作;掉电模式时振荡器停止工作,所有功能都被禁止,而寄存器内容得到保留。只有外部中断或硬件复位才可以退出此状态。引脚电平变化中断的特点使得attiny12对外部事件有很高的响应性,同时具有掉电模式的低功耗优点。attiny12内部集成有rc振荡器,其固定频率为1mhz。它还可以通过xtal1和xtal2引脚外接晶体振荡器或陶瓷振荡器。当使用外部时钟时,xtal2应悬空。通过熔丝位控制,可以有多种时钟选择。attiny12应用于电池的放电监测图1为放电监测电路图,其功能是对6v/10ah铅酸免维护电池的放电进行实时监测。电路中使用了tlc549,用于采集可充电电池的电压。tlc549是8位串行adc芯片,可与通用微处理器、控制器通过clk、cs、dout三条线进行串行连接。它具有4mhz片内系统时钟和软、硬件控制电路,转换时间最长17ms,允许的最高转换速率为40,000次/s。总失调误差最大为±0.5lsb,典型功耗值为6mw。采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换范围,vref接地,vref+-vref-≥1v,可用于较小信号的采样。attiny12使用其内部上电复位、内部rc振荡器,其pb2与tlc549的cs连接,作为片选信号端口;pb1与dout连接作为数据接收端口;pb0与clk连接作为脉冲时钟端口。pb3接一个蜂鸣器,pb5接一个发光二极管,它们用于声光报警,在可充电电池电压低于5.5v时,蜂鸣器报警,而发光二极管也开始闪烁。pb3控制继电器jrc的关/闭,通过控制继电器来控制外部电源的供给,当可充电电池电压低于5.4v时,将切断对外部电路的电源供给,以保护6v/10ah铅酸免维护电池,否则将导致过度放电,降低电池寿命。电路中还用了一个稳压器tps7250。tps7250具有低漏失(ldo)电压、微功耗和小型化封装的优点。此稳压器的特点和一般ldo稳压器相比有特别低的漏失电压和静态电流。模块中运用它来给单片机attiny12和tlc549提供稳定的+5v电压。当可充电电池的电压低于5.4v时,停止给外部供电,但还会给adc与单片机供电,不过adc将不再工作,而单片机继续工作(发出警报)。通过开关s1可切断内部供电。软件设计软件程序流程如图2所示。与mcs-51系列单片机不同,开机后首先要对attiny12的b口进行初始化,定义每一个pb脚是输入口还是i/o口。初始化结束后直接启动adc。通过它采集到的电压信号是可充电电池的实际电压值,若此电压值小于5.4v,则关闭继电器jrc,a/d转换也不再进行,可发光二极管led快速闪烁,蜂鸣器beep发出警报声音(频率较高),告诉工作人员可充电电池已经不再给外部供电了,需要充电。若此电压值不小于5.4v,再看它是否低于5.5v,如果低于5.5v,则发光二极管led慢速闪烁,蜂鸣器beep发出警报声音(频率较低),告诉工作人员可充电电池电压不足,但是此时adc还在继续工作,可充电电池也还在给外部供电。若电压值高于5.5v,警报停止,可充电电池给外部电路正常供电。结语本设计的软硬件很简单,而且功耗比较低,价格低廉,所以对于可充电电池的放电监测非常实用。■参考文献1 德根,宋建国,马潮等编著. avr高速嵌入式单片机原理与应用.北京航空航天大学出版社,20022 吉雷主编. 电子电路设计师protel 99完全手册. 四川电子音像出版社,2000

    时间:2019-03-20 关键词: 嵌入式处理器 可充电电池 AVR 单片机

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章

技术子站

更多

项目外包