• Vicor公司NBM2317荣获2019年度Top10电源产品奖

    近日,Vicor公司宣布,该公司的双向电源转换器NBM2317获得了由21ic中国电子网评选颁发的2019年度Top10电源产品奖。该产品凭借独特的开关拓扑及封装技术获得了评委和用户的高度赞誉,可实现高密度、高效率及低成本转换。 Top10电源奖是备受中国电源行业内认同的行业基准之一,综合自技术、应用、设计、创新、能效比多项技术指标严格评选得出。 评委组认为,“一直以来,48V电源是热门话题。正因这款用于48V和12V系统的双向桥接转换器,可在97.9%的峰值效率下提供800W的功率,所以在市场应用中备受赞誉。不仅如此,该款产品比分立式设计所用空间更少,还拥有多重负载的快速瞬态响应,并且并行支持更高功率。” NBM2317采用不足3.3立方厘米的封装,提供48V至12V双向转换,在750W稳定功率和1kW峰值功率下,支持98%的峰值效率。该产品开关频率为1.7MHz,占用的空间只是需要大量分立式组件的低速开关频率(不足1MHz)解决方案所需空间的一小部分。NBM2317将其输出保持在狭窄的电压频段内的同时,可快速响应瞬态负载(1微秒)。 值得一提的是,NBM2317是一款完整的电源解决方案,无需外部过滤器、大电容器、热插拔或涌流限制,提供电压基本没有噪声。 AIoT步入工业和寻常百姓家的现今,数据中心和高性能计算快速变革,需要更高的处理器速度来支持AI机器学习,这推动XPU所需的电源实现了相应的增长。 众所周知,数据中心是地球上的一个耗电大户。最新的统计数据表明,我国数据中心每年用电量占到全社会用电量的1.8%。随着高性能计算及AI技术的广泛应用,数据中心耗电量还在迅猛增长。为了提升算力效率,降低能耗,数据中心母线电压已经开始从12V向48V转变,48V成为主流指日可待。 虽然支持GPU的业界领先计算系统使用48V提高电源功能和总体系统效率,但许多系统仍然依赖原有12V基础架构和12V负载。这种情况下,应用NBM2317可高效率、小型化地实现从12V向48V系统的升级。 另外,在汽车方面,正在逐步攀登“L1-L5这座高峰”的自动驾驶技术使得汽车内部越来越复杂。而汽车中的能量存储和配电正在向48V过渡,需要满足高功率并减轻配电布线重量。NBM2317可将单个电池的电源转换为48V配电,必要时为远程原有负载提供12V电压。 不仅如此,Vitor还拥有“48V生态系统”,拥有从电源到负载点的48V产品,可实现高效、高密度、经济、可靠的配电。

    关键词: vicor 电源新品 top10电源产品奖 48v电源

    时间:2019-10-23

  • 80C51单片机对压力测量控制系统的设计

    80C51单片机对压力测量控制系统的设计

    1 引言 目前我国发展煤炭生产机械化发展迅速。综采设备的应用,是提高效率、改善安全状况的措施。 影响开机率的一个主要因素是支架对工作面的顶板控制的好坏,因此,对综采工作面进行矿压监测与控制是很有必要的。要做到这一点,首先需要对井下工作面的液压支架的实际工作状况进行监测,通过对检测数据处理、分析,评定其效果,并采取相应措施,以提高开机率、提高产量。本文以监测综采液压支架的压力为研究内容,开发了一套基于单片机的压力测量控制系统。 2 压力测量控制系统功能设计 压力测量控制系统用于监测支架压力, 每台测量控制系统配有四只传感器, 可分别通过高压油管连接支架的立柱、平衡千斤顶, 前探梁千斤顶的油压腔。压力测量控制系统接收到通讯测量控制系统传来的数据采集命令后, 采集四通道的压力, 传给通讯测量控制系统, 再由通讯测量控制系统传至地面。压力测量控制系统设有按键, 当按下时, 可在LCD液晶显示窗口循环显示四通道的压力值。 3 压力测量控制系统的结构件设计     图1 压力测量控制系统框图 压力测量控制系统的结构如图1所示, 它以80C51单片机为核心, 包括传感器、光耦、多路数据开关、LCD液晶显示器、SRAM, EPROM、自动复位电路、RS-485接口电路及高效电源电路等。下面分别介绍一下它们各自的设计特点。 3.1 传感器 传感器采用前面设计的活塞传压大量程谐振弦式液压传感器,传感器输出幅度为5伏的矩形波。 3.2 信号输入电路 (1) 多路数据开关(多路数据选择器)74HC151 74HC 151是8选1数据选择器,它有8个数据输入端D0--D7, 1个选通端S, 3个数据选择端A, B, C和2个输出端Y, W。当3个数据选择端A, B, C从000到111之间变化时,可选择不同的通道。 (2) 信号输入电路: 以D0通道为例,其电路如图2所示。     图2 信号输入电路 由图2看出,传感器频率信号是通过光电耦合器6N139耦合到74HC151的输入引脚D0。80C51的P1.0, P1.1输出控制码,选择D0--D3输入中的一路,用单片机的T0测信号频率。 3.3 80C51外扩8KB EPROM和8KB SRAM 在压力测量控制系统中,80C51扩展8K的EPROM (27C64)和8K的SRAM (6264)作为外部的程序存贮器和数据存贮器。选择了较低的6MHz作为80C51单片机的工作频率,能满足数据采集要求,同时还可以降低单片机的功耗,扩展系统连接图如图3所示。     图3 压力测量控制系统80C51扩展系统[!--empirenews.page--] 在80C51单片机中,外部I/O口是作为外部RAM来扩展的,选址的方法与扩充外部RAM的方法完全相同。本电路除了外部的RAM外,还有LCD显示器作为外部I/O器件,因此,只采用线选址方式是不够的,应采用译码选址方式。 3.4 LCM点阵式液晶显示模块接口设计 LCM点阵式液晶显示模块能显示的字符多,并且能显示汉字,因而在智能化测量控制仪表中得到了广泛的应用。本系统选用的是EPSON公司生产的EA-D20040AR点阵式液晶显示模块,它由TN型液晶显示器、CMOS驱动器和CMOS控制器组成,模块内集成有字符发生器和数据存贮器,采用单±5V电源供电,内部有能显示96个ASCII字符和92个特殊字符的字库。EA-D20040AR与单片机80C51的接口电路如图4所示:     图4 EA-D20040AR与80C51的接口电路 3.5电源电路 本系统的通讯测量控制系统及所有的压力测量控制系统共用同一本安电源,应尽量地降低线路损耗, 提高电源工作效率。为此, 压力测量控制系统除控制传感器的电源供电外, 还采用了美国MAXIM公司的高效、+5V输出可调降低压稳压器MAX639, 可将+5.5~+11.5V之间的电池电压转换为+5V出, 并在整个电压范围内提供100mA输出电流, 静态电流仅为10μA, 效率高于90%。 MAX639所需外围器件较少, 即一个小的廉价电感、一个输入旁路电容、一个滤波电容和一个肖基特二极管, 不需要任何补偿元件。它实质上是一个降压DC-DC转换器, 当开关合上时, 加到电感上的电压等于V+减VOUT, 通过电感的电流斜坡上升, 从而在电感的电场中储能, 该电流还流入输出滤波电容和负载; 当开关断开时, 此电流以相同的方式流过电感, 但因开关此时已断开,它必然要流过二极管。当开关断开时, 电感仅供给负载电流, 并且这个电流随着电感磁场储存的能量转移到输出滤波电容和负载中而减少为零。 3.6 RS-485接口电路 本系统中,通讯测量控制系统与各压力测量控制系统属主从式通讯网络,为适合此远距离、多点、干扰大的通讯环境,采用RS-485接口电路。本系统中选用的MAX483接口电路,是由MAXIM生产的专用于RS-485通讯的小功率收发器,含有一个驱动器和一个接收器,其特点是具有减小转换速率的驱动器,可以使EMI(电磁干扰)减到最少,并减少因电缆终端不适当而产生的影响,可以以高达250kb/s的速率无误差地传送数据。 3.7 自动复位电路 由于压力测量控制系统在井下连续运行,为了防止由于意外干扰引起“死机”,特在压力测量控制系统引入自动复位电路,即看门狗电路。看门狗电路种类很多,为了减少元件个数,本系统选用MAX706。 MAX706确保在加电期间复位,并防止掉电或降压情况下微处理器代码执行出错。在加电时一旦 Vcc达到1V,即可保证 输出低电平,当Vcc上升超过复位门限电压时,需经过大约200ms,一个内部定时器才允许 变为当电平。只要VCC降低到复位门限电压以下, 就变为低电平。 MAX706看门狗电路还监控微处理器的工作,如果在1.6S内微处理器不触发看门狗输入(WDI)且WDI并非处于三态,WDO将变为低电平。 4 压力测量控制系统软件设计 压力测量控制系统的程序由主程序和几个子程序组成。子程序主要包括测频率子程序、计算压力子程序、显示数据子程序、串行通讯子程序等。 4.1 测频率子程序 单片机多倍周期同步法测量的两种情形,本系统选用第二种方法,即固定TM的多倍周期测量法。 4.2 计算压力子程序 当单片机测完一个信号频率后,取出对应的压力盒常数A, B, f0,由公式 计算出压力P(为兆帕)或换算成其他单位的压力值。 4.3 显示数据子程序 单片机把前面计算出的压力值输出到LCM液晶显示模块显示。LCM液晶显示模块EA-D20040AR的初始化程序如下: START: MOV DPTR, #2000H;置指令寄存器地址 MOV A, #38H; 置功能,数据以8位操作,2行显示,5X7点阵 MOVX @DPTR, A MOV A, #06H; 置输入模式,设置AC为增量方式,显示屏不移动 MOVX @DPTR, A MOV A, #OEH: 置显示开/关控制,显示开,显示光标,闪耀关 MOVX @DPTR, A MOV A, #01H; 总清,清除屏幕,置AC地址为零 MOVX @DPTR, A RET 4.4 压力测量控制系统串行通讯子程序 本系统中,各压力测量控制系统与通讯测量控制系统之间属于多机通讯。通讯测量控制系统为主机,各压力测量控制系统为从机。压力机发送数据,通讯测量控制系统接收数据。 压力测量控制系统(从机)中断方式通讯程序程序设计思想是:在主程序中设置好与串行通讯接收和中断有关的初始化工作后,等待中断,在收到一帧地址信息后启动中断进入通讯服务程序,在以后的接收或发送通讯中就采用查询方式,直到本次通讯结束,由中断返回到主程序。其中若从机未作好发送准备及出现非法命令等也从中断返回,在主程序中作好准备。主机应重新和从机联络,使从机再次进入串行口中断。

    时间:2019-09-03 关键词: 单片机 电源技术解析 控制

  • 控制电源启动及关断时序

    控制电源启动及关断时序

    微处理器、FPGA、DSP、模数转换器 (ADC) 和片上系统 (SoC) 器件一般需要多个电压轨才能运行。为防止出现锁定、总线争用问题和高涌流,设计人员需要按特定顺序启动和关断这些电源轨。此过程称为电源时序控制或电源定序,目前有许多解决方案可以有效实现定序。 此外,为有效进行升压和关断而应运而生的各种电源定序器、监视器和监控器还采用了电压和电流水平监控技术来计算功率水平,目的是保护复杂的集成电路和子组件。 本文将详细介绍电源定序,探讨电源定序规范和技术,以及如何使用电源定序器来实现指定的电源轨定时及定序。 为什么要关注电源定序? FPGA 及类似的复杂集成电路 (IC) 可在内部分解成多个功率域。在启动或关断器件时,此类 IC 大多需要特定的顺序。例如,FPGA 通常需要分别为内核逻辑、I/O 和辅助电路上电。 其内核通常包括 FPGA 的处理器和基本逻辑单元。该功率域具有低电压、高电流功率规范特征。由于电压极低,因此其对精度要求极高,而由于数字负载的动态特性,瞬态性能必须非常出色。I/O 代表 FPGA 的各种输入和输出。电压要求取决于接口类型。一般来说,其电压电平需大于内核的电压电平。电流要求则取决于 I/O 的类型、数量和速度。 辅助电路包括 FPGA 中的噪声敏感型模拟电路,例如锁相环 (PLL) 和其他模拟电路元件。虽然电流要求相当低,但纹波电压是个大问题,必须最大程度地降低纹波电压。模拟部分的纹波可能会导致 PLL 出现过大抖动和相位噪声,还可能导致放大器出现杂散响应。 以错误顺序启动各功率域的电源可能会引起问题,并可能导致 FPGA 受损。需要考虑的是,I/O 部分基于三态总线收发数据,而内核负责处理 I/O 控制。如果 I/O 功率域在内核之前上电,则 I/O 引脚会以不确定状态结束。如果外部总线组件上电,则可能存在总线争用问题,导致 I/O 驱动器出现高电流。因此,内核应在 I/O 功率域之前启动。请务必查阅供应商的 FPGA 规范,了解推荐的电源启动和关断顺序以及电源轨之间的最大差分电压。 同样,功率运算放大器等器件拥有两个功率域:模拟域和数字域。数字域为放大器的诊断状态标记提供电源,识别过热和过流状态。此外,数字域还支持放大器的使能/关断功能。该器件规格要求,数字域应在模拟电源之前上电,以便这些状态标记在模拟域上电之前能够正常运行。这样做的目的是防止可能对器件造成损坏。 电源定序方法 通常有三种类型的多轨定序(图 1)。最常用的方法是顺序定序,这种方法是先接通一个电源轨,然后延时,然后再接通下一个电源轨。设置延时的目的是确保第一个电源轨在第二个电源轨启动之前达到稳压。     图 1:三种电源定序技术。不论采用哪种技术,电压均须以单调方式上升。否则,器件可能会因启动期间电压意外下降而无法正确初始化。(图片:Digi-Key Electronics) 第二种定序技术是比率定序。在该技术中,电源轨会同时启动并同时达到各自的额定电压。这就需要电源轨上升时间与电源轨电压成正比,才能同时实现稳压。 有些器件可能无法承受达到稳压之前发生的瞬时电压差。而这可能导致器件在此期间在一个电源上消耗更高的电流。 第三种方法是同时启动,这种方法可以最大限度地减少瞬时电压差,并且可以减少这些压力的规模和周期。实施这种方法的一种常见方式是同时上电,即:电压轨以相同速率一起上升,较高的电压轨(通常是 I/O 电压轨)在较低电压轨或内核电压轨达到其最终值后继续上升。 不论采用哪种技术,电压均须以单调方式上升。否则,器件可能会因启动期间电压意外下降而无法正确初始化。 另外,可以使用软启动来限制启动期间的涌流。这种做法可以限制启动期间的电流,从而允许启动时逐渐对电源轨电容进行充电。 电源关断顺序通常被指定成与启动顺序相反。 选择使用何种启动或关断技术应取决于器件的规格。 电源定序示例 同时启动相对容易设置。您需要将最高电压输出连接到较低电压稳压器的输入上(图 2)。     图 2:通过以菊花链方式连接稳压器可以实现 5 V 电源和 3.3 V 电源的同时启动。(图片:Digi-Key Electronics)[!--empirenews.page--] 在本示例中,较高电压是 5 V 电源。这个 5 V 电压也馈入 3.3 V 稳压器。图中显示的是 5 V 和 3.3 V 电源同时上升且最小压差达到 3.3 V 电源稳压点时的电压输出。 该定序技术最好使用定序器集成电路(如 Texas Instruments 的 LM3880)来实现。LM3880 是一款简单的电源定序器,可通过稳压器或电源的使能输入来控制多个独立的稳压器或电源。 当 LM3880 启动时,三个输出标志将在各个延迟时间后依次释放,从而允许连接的电源进行启动。在关断期间,输出标志将遵循相反的顺序。下图是一个使用 LM3880 的设计实例,采用 Texas Instruments 的 WEBENCH Power Designer 软件设计而成(图 3)。这款免费软件工具不仅能帮助工程师设计与电源相关的电路,而且还能提供示意图、材料清单及模拟结果。该图显示了示意图、图表、使能以及三个标志输出。 LM3880 的延迟时间和次序是固定不变的,但可通过内置的 EPROM 在工厂进行定制。此外,Texas Instruments 还为 LM3881 定序器提供了电容器可编程延迟功能。     图 3:Texas Instruments 的 WEBENCH Power Designer 软件屏幕截图显示了 LM3880 设计示意图以及用于控制外部稳压器或电源的使能输入及输出标志图表。(图片:Digi-Key Electronics) Analog Devices 的 LTC2937 定序器/电压监控器是一款稍微复杂的电源控制器件。与 LM3880 一样,LTC2937 可以控制多达六个电源或稳压器的时序和时间延迟(图 4)。     图 4:LTC2937 最多可以控制六个电源时序,同时还可以监控电源轨电压。通过一根电线可以同步多个器件,最多可控制 300 个电源。(图片:Analog Devices) 除了最多可对六个电源轨进行定序外,这款定序器还可以监控这些电源轨上的电压,进而过压、欠压、压降及失控电源启动检测。如果发生故障,您可以对该器件进行编程以关断或重启电源。错误情况将会记录到内部的 EEPROM 中。LTC2937 可通过 I2C 或 SMBus 进行编程和控制。其编程可借助 Analog Devices 的 LTpowerPlay GUI 软件进行。EEPROM 支持自主运行且无需软件。若系统需要六个以上电源轨,只需将多个 LTC2937 链接在一起,即可控制多达 300 个电源。 对于复杂的多核处理器、FPGA 以及其他 SOC 器件,Texas Instruments 提供了 TPS650860 可配置多轨电源管理单元。这款单 IC、输入电压范围 5.6 V - 21 V 的电源管理单元包含三个降压控制器、三个降压转换器、一个灌入或拉出低压差 (LDO) 线性稳压器、三个低压输入 LDO、稳压器和三个负载开关(图 5)。 图 5:Texas Instruments 的 TPS650860 功能框图显示了 13 个时序完全受控的稳压输出。(图片:Texas Instruments)     该器件具有 13个稳压输出,可满足 FPGA 或其他负载器件的需求。 其降压转换器含内置功率级,而降压控制器则需要外部功率级。无论是转换器,还是控制器,均集成了电压感应输入来监控电源输出,从而实现定序控制。其负载开关含有压摆率控制,可以针对三种定序类型(顺序、比率或同时)的任意一种对与这些开关有关的电源轨进行编程。 TPS650860 经由 I2C 接口进行控制,因此可通过嵌入式控制器或相关 SoC 管理器实现简单的控制。这种电源管理 IC 具有领先的控制灵活性。

    时间:2019-09-02 关键词: 控制器 嵌入式 电源技术解析

  • STM32单片机GPIO口的工作模式解析

    STM32单片机GPIO口的工作模式解析

    STM32单片机的每组IO口都有4个32位配置寄存器用于配置GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR和GPIOx_PUPDR,2个32位数据寄存器用于配置输入和输出寄存器GPIOx_IDR和GPIOx_ODR,1个32位置位复位寄存器GPIOx_BSRR,1个32位锁定寄存器GPIOx_LCKR和2个32位复用功能选择寄存器GPIOx_AFRH和GPIOx_AFRL。 GPIO的输出状态可以配置为推挽或开漏加上上拉或下拉。输出数据既可以来自输出数据寄存器,也可以由其他外围寄存器发出。每组IO口的速度都是可以配置的,可以配置为25MHz,50MHz或是100Mhz。数据输入同样也有几种模式,它们分别为浮空,上下拉和模拟,并且输入数据同样可以配置为来自输入寄存器或是其他的外围寄存器。置位复位寄存器可以方便地对每一位进行单独的配置,这在许多情况下非常有用。 经过上一段对GPIO口模式的说明,在这里对它的工作模式进行一个小结,它一共有八种组合,即有八种可配置的工作模式,分别是: 输入浮空 输入上拉 输入下拉 模拟 带上拉或下拉的开漏输出 带上拉或下拉的推挽输出 带上拉或下拉的复用功能推挽 带上拉或下拉的复用功能开漏 STM32单片机GPIO口的工作模式解析  

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

  • AVR单片机在工业控制系统中的应用

    AVR单片机在工业控制系统中的应用

    单片机在工业控制领域应用时不同于民用、商用领域中的应用,工业控制所处的环境相对比较恶劣,干扰源多,其常见干扰源来自现场工业电气在投入、运行、切断等工况下产生的静电感应、尖峰电压、浪涌电流等干扰。实践表明,在工作室中按用户要求设计的小型工业采暖控制系统,尽管各项逻辑功能及技术指标的测试都正常,但该系统拿到现场上却不能使用,检测失灵,操作失控,显示花屏等现象接踵而来。经分析,其干扰是从现场不同路径传入单片机控制系统的。切断干扰源,提高单片机抗干扰能力是解决控制系统正常工作的前提。 2 抗干扰措施 2.1 测温信号的抗干扰 测温电路采用的是单总线芯片DS18B20,该芯片具有测温精度高,连接线路简单等优点,其测温范围为-55℃到+125℃。适合于采暖系统测温,在实际应用中当温度在 60℃以下时可正常工作,随着温度的升高,当温度大于 60℃以上时,测温数据开始跳动,且温度越高跳动越剧烈,甚至无法观测。电源加了滤波退偶电路效果不明显,在数据线上并接小电容进行高频旁路时,电容小不起作用,电容大了则数字信号消失。最后经试验在数字电路上加如图 1所示标称值的 RC阻容滤波电路达到了预期效果。     2.2 限位开关信号的抗干扰 由于限位开关及馈线与 220V交流负载比较靠近,因此,负载产生的交流强磁场直接对限位开关及馈线产生干扰。解决的办法采用光电隔离方式,通过光耦组件 PC827将单片机控制回路与被控回路负载(如电机)隔离开来。从而大大减小了来自负载回路对单片机产生的干扰。 2.3 电源回路的抗干扰 电源干扰中的尖峰干扰是一种频繁出现的叠加于电网正弦波上的高能脉冲,其幅度可达几千伏,宽度只有几个毫微秒或几个微秒,抑制办法可从多方面入手。如图 2所示,T1为电源变压器,在其交流电源的输入端并联压敏电阻RV用来吸收电网瞬间产生的尖峰电压;C1为高频旁路电容,抑制高频差模干扰,C2和 C3用来抑制高频共模干扰。电感 L1中两个线圈绕向相同,流过的电流大小相等,但每一瞬变间的电流方向相反使感生的电磁场方向也相反,故生成的反电势干扰可以相互抵消。可有效抑制电源端较低频率的干扰。     2.4 输出驱动电路的抗干扰 输出驱动采用电磁继电器方式,通过电接点带动交流电机或直流电磁铁,尽管继电器具有一定的电磁隔离作用,但交流电机或电磁铁激磁线圈断开时会产生高压反电势产生串扰。解决的办法如图3(a)所示,在交流负载如电机两端并接一个高压电容C2,当驱动电路使继电器接点 K断开电机时产生的高压反电势可由并接在电机负载上的电容C2来吸收掉。该电容大小应适当,一般取所带电机中分相电容 C1的十分之一即可。太小作用不明显,太大则影响分相电容的工作,以致启动力矩太小电机堵转。 另外继电器内部的交流 220V接点离继电器线圈很近,很容易产生静电干扰,严重时会使液晶显示器乱码。实践证明继电器结构不同其抗静电干扰能力也不同。应尽量选择继电器线圈与接点距离较远的为好,如图3(b)中的 J2结构的继电器(JQX14F系列)等。     2.5 液晶显示器的抗干扰 显示电路采用LCD汉字液晶显示。LCD液晶显示与LED数码管显示相比具有信息量大,省电,且连接线路简单等优点。但液晶显示的一个致命弱点是抗静电干扰能力差,在使用中一旦有较强的干扰信号出现,显示器就会出现乱码或花屏。尤其是有汉字的液晶显示器花屏出现的机率更高。解决的方法是一方面尽量切断产生静电干扰的途径,另方面是减少液晶显示器本身产生静电干扰的条件。其中,后者更为重要。一般液晶显示器在结构上都有固定液晶显示器面板的金属框。如果在安装时该金属框直接接触外边的固定表盘,形成接触面,使液晶面板会通过金属框及外面固定的金属表盘之间产生电容效应,因而静电干扰不可避免。如图 4所示,要减少静电干扰就必须减少电容效应。具体解决的措施是:将开孔尺寸拓展到图中虚线位置。使得显示器的金属框远离仪表机壳,实测结果电容效应几乎为零。从而乱码和花屏现象不再出现。     2.6外部看门狗与外部时钟 看门狗也称程序监视定时器。尽管 AVR单片机系统内也有该功能的设置,但在应用实践中发现当干扰严重时该功能会失效,即系统死机后单片机内部的看门狗也无法复位。故有必要在单片机外部单独设计看门狗电路。如图 5所示,由 MC4060芯片及外围电路构成一个看门狗电路。MC4060是一个带外接振荡的 14分频定时计数器,R18和 C2时间常数决定振荡频率。采用如图 5所示的参数时,该振荡频率经过 2秒左右时间后 14分频计数器将被记满,Q14由低电平变高电平经三极管 Q3构成的反相器使输出变为低电平,M16单片机被复位。程序正常运行时,会在规定的时间以内(2S左右)由程序向看门狗 MC4060芯片及时发清零(喂狗)信号,使定时计数器还没有记满就被清除,故不会产生复位信号;当程序“跑飞”时,看门狗便不能在规定的时间内得到清除(喂狗)信号,则看门狗将使 M16单片机复位使程序重新开始工作。 为配合看门狗在控制器死机后的复位工作,如图 5所示控制器的系统时钟由外部的时钟专用集成电路DS1307提供,AVR单片机内部时钟资源仅对程序中的延时变量提供相对时间。这样的好处是当看门狗一旦使系统复位,AVR内部时钟必然要清零,而外部系统时钟不会被清零,不影响控制器定时启动或定时停止等项功能的实施。另外,外部时钟 DS1307芯片耗电极省仅需 0.5微安,而内部时钟即使在省电模式下也需要几毫安以上。若用小型 20mAh容量锂电作电源后备,掉电后外部专用时钟可在几年内信息不丢,而内部时钟不到一天就没电了。     3.结束语 在设计开发AVR单片机在工业控制系统中的应用中,抗干扰是一个不能绕过去的现实课题。要解决该课题,熟悉常用的抗干扰措施是一个重要前提。但由于干扰因素多,控制对象及所要求的控制功能不尽相同,所以抗干扰措施并没有固定模式,只能在实践中通过不断摸索来筛选更合理更有效的方案。本文所述的抗干扰措施是一点实践经验的总结,供参考。 本文创新点:1.在 DS18B20数据线上接阻容电路;2.在电源的输入端并联压敏电阻以吸收尖峰电压;3.加大液晶显示器开孔尺寸以减少它本身产生静电干扰。

    时间:2019-08-28 关键词: 电容 单片机 电源技术解析

  • 基于FPGA与W3150A+的以太网接口设计

    基于FPGA与W3150A+的以太网接口设计

    虚拟仪器以其性价比高、开放性强等优势迅速占领了市场,并成为测控仪器新的经济增长点。步入信息化时代最显著的标志就是信息网络在各行业中的渗透和普及,其中以太网最为典型。以太网作为一种成本低廉、吞吐能力强、适应性好、网络管理能力日益提高的网络,它可以方便地将数据采集系统纳入局域网甚至Internet。而以太网总线则有可能代替现行的其他总线方式而成为虚拟仪器数据采集系统的首选接口。 1 以太网接口的总体设计 1.1 以太网接口设计方案选择 以太网接口的设计通常有三种方案:其一是采用FPGA实现物理层、网络层、接入层和传输层等各层的描述,该方案要自行实现复杂的TCP /IP协议,难度较大;二是基于物理层网络控制器和微处理器来实现网络传输,该方案的优点是灵活性强,可以针对不同的系统采用不同的协议,可实现协议的精简:三是采用专用的协议处理芯片实现以太网数据传输,该方案的硬件电路相对简单,开发周期短,并有越来越多的芯片可供选择,且集成了多种协议,使用十分方便。 本设计采用第三种接口方案,即采用专用的TCP/IP协议集成芯片,并由FPGA实现对协议处理芯片的控制,从而实现以太网数据传输。协议处理芯片选用内部固化了TCP/IP协议的W3150A+并配合物理层芯片RTL8201,该方法硬件电路相对简单,并可利用逻辑硬件实现,从而使系统设计更加简单、紧凑。 1.2 以太网控制芯片W3150A+简介 W3150A+是WIZnet公司专门为以太网互联和嵌入式系统推出的TCP/IP协议栈芯片。W3150A+能够实现TCP、UDP、IP Ver.4、DHCP、ARP和ICMP等协议,同时,网络接口层(包括MAC子层和DLC子层)也可在该芯片中实现。同时还能提供四路网络连接,其内部有16KB的双口RAM可作为数据缓冲区,并可支持全双工模式,同时带有标准的MD接口,可方便连接物理层接口芯片。此外,WIZnet公司还提供了Socket API程序包,可以加速应用程序的开发。     图1所示是W3150A+芯片的结构框图。由图1可见,W3150A+主要由4部分组成。其中第一部分是MCU接口。W3150A+提供有直接总线接口、间接总线接口和SPI总线接口。既适合与类似8051单片机的总线连接,也非常适合与只有IO口而没有总线接口的控制器连接;第二部分是TCP /IP协议栈。W3150A+已经完全固化了从MAC层、网络层到传输层所需要的协议,因此,用户无需了解这些协议的具体实现方法和实现代码;第三部分是接收和发送缓冲区,通过以太网进行通信的数据就是通过这些缓冲区来交换的;第四部分是以太网物理层接口(MII接口)。W3150A +可以与物理层芯片RTL8201无缝连接,从而实现10/100BaseT以太网物理接口。 W3150A+内部的寄存器分为两个存储器和两类寄存器。两个存储器分别用于数据传输的输入和输出,两类寄存器分别是通用寄存器和端口寄存器,每类寄存器都含有大量的状态字控制寄存器。下面简要介绍比较重要的状态字控制寄存器。 Sn_MR:端口n模式寄存器,该寄存器用于设置端口的选项或协议类型; Sn_CR:端口n命令寄存器,该寄存器用来设置端口的初始化、关闭、建立连接、断开连接、数据传输以及命令接受等; Sn_IR:端口n中断寄存器,该寄存器用于显示建立和中止连接、接收数据、发送完成以及时间溢出等信息; Sn_PORT:端口n的端口号寄存器,该寄存器可在TCP或UDP模式下设定对应的端口号; S_TX_FSR:端口n发送存储器剩余空间寄存器,该寄存器用于指示用户可以使用的发送数据空间的大小,在发送数据前,用户必须先检查剩余空间的大小,然后控制发送数据的字节数; Sn_TX_RR:端口n发送存储器读指针寄存器,该寄存器用于指示端口在发送过程完成后发送存储器的当前位置。当端口n的命令寄存器收 到SEND命令后,可随即从当前Sn_TX_RR到Sn_TX_WR的数据中发送出去,发送完成后,Sn_TX_RR的值自动改变; Sn_TX_WR:端口n传输写指针寄存器,该寄存器可指示向TX存储器写入数据时的地址; Sn_RX_RSR:端口n接收数据字节数寄存器,该寄存器只是端口接收数据缓冲区接收数据的字节数,通常可由Sn_TX_RR到Sn_TX_WR的值计 算得出,向端口n命令寄存器写入RECV命令后,寄存器的值将自动改变,并可以接收远程对端的数据; Sn_RX_RD:端口n接收缓冲区读指针寄存器,该寄存器只是端口接收过程完成后的读地址信息。 W3150A+内部有4个独立的端口(Socket),它们的状态、控制分别映射在第二到第五寄存器区。主要用于实现端口工作模式的控制(TCP服 务器、TCP客户端、UDP或PPPOE等)、设置该端口的端口号,设置该端口目的主机IP地址和端口号,以及端口接收和发送数据控制等。 2 以太网接口的硬件设计 本接口的硬件设计主要包括FPGA与W3150A+的接口设计,物理层芯片RTL8201与W3150A+的接口设计以及时钟模块和电源模块的设计。其硬件设计框图如图2所示。 2.1 W3150A+与FPGA的接口设计 随着半导体技术的飞速发展,FPGA(Field Programmable Gate Array)的计算能力、容量以及可靠性有了很大的提高。它正以高度灵活的用户现场编程功能、反复可改写功能、高可靠性等优点,成为数字电路、数字信号处理等领域的新宠。 考虑到成本、实用性以及功耗,本设计选用的FPGA芯片是Altera公司MAXII系列的EPM570GT100C4。MAXII系列器件是一种非易失性CPLD,采用0.18μm的制造工艺,并包含有240到2210个逻辑单元和8Kbits非易失性存储器,它相对于其他的CPLD可以提供快速、稳定、数量更多的I/O管脚。 W3150A+与微处理器芯片的接口方式有三种:直接总线接口模式、间接总线接口模式和SPI模式。其中直接总线接口模式适用于大数据量传输的情况;SPI模式的接口连线较少,适用于数据量不大,传输速率相对较低的情况;间接总线接口模式下的数据传输性能则介于它们两者之间。本系统采用直接总线接口模式,以便最大限度地提高数据的传输速率。其具体的接口电路如图3所示。 2.2 物理层芯片与W3150A+的接口设计 RTL8201BL是一个单端口的物理层收发器,它只有一个MII/SNI(媒体独立接口/串行网络接口)接口。可用于实现全部的10/100M以太网物理层功能,包括物理层编码子层(PCS)、物理层介质连接设备(PMA)、双绞线物理媒介相关子层(TP~PMD)、10Base-Tx编解码和双绞线媒介访问单元(TPMAU)。PECL接口可支持连接一个外部的100Base-FX光纤收发器。这款芯片使用先进的CMOS工艺制作,可以满足低压低功耗的需求。 RTL8201BL与W3150A+可通过标准MII接口相连,其中引脚RX_CLK、RXDV、RXD[0:3]以及COL用于数据的接收,而TX_CLK、TXE、TXD[0:3]用于数据的发送。其具体的电路图如图4所示。     3 数据传输的实现过程 通过控制器对寄存器进行读写访问操作,W3150A+就可以进行网络连接。下面介绍具体的操作过程。 首先应进行初始化。初始化设置包括基本设置、网络信息设置,端口存储器信息设置等,设置完后就可进行数据传输。数据传输可以采用TCP、UDP、IP_RAW和MAC_RAW模式进行,并可在端口n模式寄存器(Sn_MR)的协议类型中选择通信模式。其中,基本设置包括模式寄存器(MR)、中断屏蔽寄存器(SIMR)、重发时间寄存器(RTR)、重发计数寄存器(RGR)等;设置网络信息包括设定网关(GAR)、设定源硬件地址(SHAR)、设定子网掩码(SUBR)、设定源IP地址(SIPR)等;而设置端口存储器信息则主要是设定发送缓冲区和接收缓冲区的大小分配,具体可通过设置RMSR、TMSR寄存器实现。 本系统在FPGA芯片EPM570GT100C4的基础上可利用软件Quartus II来开发逻辑控制功能,从而实现对W3150A+的控制。其主要端口如下: nrst:复位输入键,低电平有效; clk:时钟输入; nwrst:复位输出,可复位W3150A+和RTL8201; nwr:对W3150A+写使能信号,低电平有效; nrd:对W3150A+读使能信号,低电平有效; ncs:W3150A+片选信号,低电平有效; address:15位地址信号; data:8位数据信号; 本接口通信设计采用的是UDP通信方式,其通信流程图如图5所示。 基于FPGA与W3150A+的以太网接口设计 端口初始化主要是对端口进行初始化,包括设置UDP模式、设置端口号,设置OPEN命令;通过Sn_RX_RSR寄存器的值可检测是否收到数据,若非零,即进入数据接收处理;接收处理时,首先读取Sn_RX_RSR寄存器的值,即接收数据字节数,然后计算偏址和实际物理地址,再根据物理地址读取数据。在读取数据过程中,如果物理地址到达该端口设定的高限地址,则先读高限地址的数据,然后将物理地址改为基地址,然后再从基地址继续读取剩余的数据。读完所有的数据后,可将Sn_RX_RR的值加上读取的数据长度,然后写入sn_RX_BASE,最后再向端口n的指令寄存器写入RECV命令。 发送数据?/发送处理的实现过程是首先读取S_TX_FSR寄存器的值以便能使用发送数据空间的大小来计算偏址和实际物理地址,然后再从物理地址写入要发送的数据。在发送数据过程中,如果物理地址已到达该端口设定的高限地址,则先将数据写入高限地址,然后再将物理地址改为基地址,接着从基地址继续写入数据。写完所有的数据后,再将Sn_TX_WR的值加上发送的数据长度,然后写入Sn_TX_BASE,最后向端口n的指令寄存器写入SEND命令。发送完成的确定可在发送(SEND)命令后,通过检测Sn_CR的值来判断数据是否全部发送完成。 当远程对端不存在或数据传输不正常时,将产生超时错误。此次可以通过对Sn_IR(TIMEOUT bit)检测来判断是否超时。当操作全部完成时,应关闭窗口,即将Sn_CR寄存器置为CLOSE。 4 结束语 本文介绍了以太网接口的设计及其数据传输的实现过程。利用本文的方法可以使以太网接口正常运行,故可为后续的虚拟仪器开发奠定基础。事实上,本方法已经过多次试验证明:完全满足工程需要。

    时间:2019-08-27 关键词: FPGA 嵌入式 电源技术解析

  • 高端示波器中的数字信号处理技术

    高端示波器中的数字信号处理技术

      图1. 90000-X示波器捕获板 图1是90000-X示波器的捕获板。90000-X示波器使用磷化铟技术,其硬件带宽可达33GHz,实时采样率可达80GSa/s,存储深度可达2GB。这些指标都达到了业界顶尖的水平。但是随着采样速率和存储深度的提升,数字信号处理能力成为一大挑战,传统的使用内置计算机的Matlab软件处理方式已经不能满足测试速度的要求。现在,90000和90000-X示波器采用FPGA硬件进行数字信号的处理,代表了示波器数字信号处理技术发展的方向。 90000和90000-X示波器的FPGA执行了如下处理,大幅度提升了示波器响应的速度;其FPGA也集成了嵌入去嵌入和精密探头校准算法,也大幅度提升了测试精度。 1、MegaZoom处理核 MegaZoom处理核集成在FGPA内部,它对存储器进行管理。首先是使用乒乓处理技术,把存储器分为两部分,一部分捕获数据时,另一部分在传递数据。这样波形更新速度可提升一倍。 MegaZoom也进行压缩处理,进行屏幕显示波形数据运算,只传递需要显示的数据到示波器屏幕上,这样刷新速率会提升许多倍。一旦需要测量数据,再把数据传递给内部计算机进行参数计算。现在已经能够用FPGA处理一部分测量参数了,只传递测量参数,速度又将大幅提升。 2、FPGA进行波形参数测量 现在已经把一部分测试参数用FPGA实现了,未来会把主要的测量参数都用FPGA实现,整个示波器的速度又会大幅度提升。 3、FPGA进行正弦内插 传统的示波器的Sinx/x正弦内插是用内置计算机的Matlab来实现,一旦设置的存储深度比较深,则示波器的速度会变得很慢,现在用FPGA来实现,则没有这样的瓶颈。 4、FPGA进行幅度和相位修正 硬件放大器、采样保持电路的幅频和相频响应没法做到很完美,那用FPGA进行幅度和相位修正是理想化频响的正当方法。有的示波器也可以用这种修正来提升或降低示波器的带宽。图2是提升示波器带宽的方法,应用一个高通滤波器(图2绿色曲线),提升示波器带宽(原来硬件带宽曲线是红色曲线)到更高数量级(蓝色曲线)。     图2. DSP提升示波器带宽的方法 5、FPGA进行触发抖动修正 硬件触发器的触发抖动一般是1PS以上,可以用FPGA进行触发抖动修正到100fs量级,这样提升了单个波形的触发精度。但是没法修正双通道的时间偏差不确定度。 6、FPGA进行FFT运算和频谱触发 用FPGA进行FFT运算可大幅度提升FFT处理的速度,并且可以进行频谱触发。用内置计算机的Matlab进行FFT处理,当内存深度设置比较深时一般较慢,也没法进行频谱触发。 7、FPGA执行嵌入和去嵌入处理,执行精密探头校准参数的处理 用FPGA执行嵌入和去嵌入处理,大幅度提升了响应速度。 由于精密探头校准参数类似于S参数,校准参数表的数据量比较大,只有用FPGA进行处理,才能满足速度的要求。 8、FPGA执行协议触发和协议译码 示波器做总线的协议分析是示波器应用方向之一,但是用软件做协议译码速度比较慢,用软件只能进行协议搜索,而不能进行协议触发。现在一些示波器如3000-X示波器已经用处理器实现了这个功能,使得译码速度很快,而且可以进行协议的硬件触发。高端示波器用FPGA实现这个功能也在研发之中。 小结: 高端示波器用FPGA实现数字信号处理技术正在不断提升中,这必将大幅度提升示波器的响应速度和精度。这是示波器R&D关键工作之一。

    时间:2019-08-27 关键词: FPGA 计算机 电源技术解析

  • 电源的管脚为什么一定要加电容?具体应该怎么加?

    电源的管脚为什么一定要加电容?具体应该怎么加?

    除了电阻之外,在我们的设计中,用的最多的器件便是电容。不要轻视这些小小的电容,他们的作用非常大,如果在电路中用的地方不好,会非常影响电路的功能。 在PCB设计过程中电源的管脚为什么要加许多电容? 大家最常听到的是软件工程师靠年龄,硬件工程师靠经验,越老越吃香。经验?自己工作过程中总结的?师兄/前辈传承的?不管经验从而何来,总归是用对了。今天我们也不讲原理,就讲为什么要用这些电容。 任何一个系统中,不可或缺的电源对整个系统影响非常大,如何提供给负载们一个干净稳定的电压尤为重要。 理想中常用3.3v电源 你真实测到的电源可能是这样的。崩溃吗? 为什么会变成这样?在3.3v的DC上叠加了各种高频率的噪声,这些噪声是由于电源转换器,或者受到外界高频的噪音干扰而产生的。 这样DC供电电压不仅会影响本负载区域内的电路的工作,也会影响到其它连接在同一个VCC上的其它负载的工作,有可能导致那些负载的电路工作出现问题。 唯一能做的就是将每个负载的问题控制在其区域内,不干扰其他负载的正常工作。当然,还需要在控制源头,让电源产生电路的输出电压要稳定。 这时候电容就登场了,利用电容充放电的原理,通俗的讲,外部高压高于电容极板两端电压时对极板充电,低于电容极板两端电压时对极板放电,在充/放电之间,就把电压中的“波”(高频)起伏削弱了,从而起平抑电压的作用,电压就变的平稳了。 正确的电容接法: 看完以上,大家明白为什么要加电容了吗? 电源管脚的去耦电容该怎么放置? 小电容靠近管脚放置,大电容放置在IC周围,又是经验总结,大家都是这么放的吧?那为什么要这样放置呢?——根据电容去偶半径总结。如果放置的电容超过了去耦半径,那就会失去的真正作用。容值最小的电容,有最高的谐振频率,去耦半径最小,因此放在最靠近芯片的位置。依次,容值大一点的就稍远。另外一个原因是:如果电容离IC电源引脚较远,则布线阻抗将减小电容的效力。

    时间:2019-08-21 关键词: PCB 电阻 电路 电源技术解析

  • 基于FPGA实现多种小波变换

    基于FPGA实现多种小波变换

    基于提升框架的小波变换方法,利用FPGA 可编程特性可实现多种小波变换。提升框架(LS :Lifting Scheme) 是由Sweldens 等人在近几年提出的一种小波变换方法,用它的框架结构能有效地计算DWT。对于较长的滤波器,LS 的操作次数比滤波器组的操作方式减少将近一半,更适合硬件实现。作者根据提升小波变换的框架式结构,利用FPGA 可完全重构的特点构造不同的小波变换核,以满足不同应用场合的要求。在结构设计中采用由下至上的设计方法,每个提升步骤都由一些可编程的参数来表示,保证了每个步骤均可重构。这些参数包括用于表示数据的位数和每个内部数学模块的通道深度。在逻辑综合时按不同小波的要求,改变参数可得到不同的结果。以图像处理中常用的(5 ,3)滤波器为例说明依靠FPGA 的重组特性实现滤波器的小波变换核方法。实验结果表明,利用FPGA 设计的提升小波变换核能满足不同场合和不同运行的要求。 LS 小波变换理论 LS 变换过程如图1 所示,逆变换与正变换相同,只是顺序相反。时间离散的滤波器可由它的多项矩阵来表示,多项矩阵由脉冲响应的奇偶采样序列的Z 变换得到。LS 小波变换的实质是对经典小波滤波器采用Euclidean 算法的多项式进行分解。     图1  正向LS 变换 一个时间离散的滤波器H( z ) 用多项式表示如下:     基于FPGA实现多种小波变换 He ( z ) 和Ho ( z ) 各自从     基于FPGA实现多种小波变换 奇偶系数得到。分析滤波器H ( z ) 和G( z ) 分别表示低通和高通,表示成多相矩阵为     基于FPGA实现多种小波变换 P( z ) 可被模拟为分析滤波器。根据Euclidean算法可将P( z ) 和P( z ) 分解成:     基于FPGA实现多种小波变换 上面的分解不是唯一的,可有几对{ si ( z ) } 和{ t i ( z ) } 滤波器,但对于计算DWT 所有的选择是等同的。 FPGA 及提升核的实现 FPGA 及重构特性 FPGA(Field Programmable Gate Array ,现场可编程门阵列) 是超大规模集成电路(VL、SI) 技术和计算机辅助设计(CAD) 技术发展的结果。FPGA 器件集成度高、体积小、具有通过用户编程实现专门应用的功能。FPGA 一般由3 种可编程电路和1 个用于存放编程数据的SRAM 组成。这3 种可编程电路是:可编程逻辑块CLB (Configurable Logic Block) 、输入/输出模块IOB ( I/O Block) 和互连资源IR( Interconnect Resource) 。由于基于小波的应用越来越广泛,所以利用FPGA 的灵活结构实现可重构的提升框架小波变换核具有很高的应用价值和研究价值。设计从基本的数学模块和逻辑模块开始,采用由下至上的设计方法,所有的库模块用VHDL 语言描述,允许根据设计精度要求选择每个单元的数据通道大小。为了满足不同环境的需要,既要求可以改变单独模块的通道层深度,又要求考虑与其他设备的相容性。将提升方法与FPGA 的特性结合起来,使不同的提升小波变换在FPGA 上可满足不同应用场合的需要。     图2  提升核结构体 提升小波变换核的实现 如图1 所示,LS 变换是连续的独立的简单滤波操作过程,这个过程就是提升步骤。由图1 可导出优化了的提升核结构体。近几年,采用JPEG2000 标准进行图像传输成为热点,很多文献中均提出了不同的提升小波变换结构体。 但是这些提升结构体大都只考虑可操作性,而忽略了功耗和灵活性。作者提出的提升核结构体(图2) 采用与以往不同的由下至上的设计方法。主要特点是指定了1 个单独的流水式的乘法单元和2个加法单元。乘法单元主要用于处理滤波器系数的对称问题,加法单元用于实现分析或综合的变换。 值得注意的是所有的通道层都可用所设计的库模块来排列,因此为了保证内部IP 核数据流的同步性,必须考虑前后交叉问题。例如,在加法输出时,已经放置了一个乘法器,允许对提升步骤的结果进行归一化。采用这种设计方法,能获得最高的数据精度和最快的运行速度。此外,整数的数学单元更容易进行深层的流水操作,获得很高的数据吞吐量。图2 所提出的结构既考虑了可操作性又考虑了应用的灵活性,由于提高了运行速度,所以降低了功耗。 逻辑综合结果 首先采用VHDL 语言来描述由基本的可重构的数学模块和逻辑模块设计的变换核结构体,然后在MAX+PLUSⅡ集成环境下进行功能仿真,实现所需变换核,最后进行FPGA 逻辑综合。在Altera1 公司的FLEX10K上设计的结构体,经过逻辑综合得到很满意的结果,见表1 。表1 的结果直接由逻辑综合得到,没有考虑各种客观因素引起的延时。在设计流程步骤之后的安放运行过程中,可进行更精确的时序分析。另外,为了获得完整的分析结果,需参考FPGA 厂家提供的指标估计功率消耗,使用时应选择功耗小的可编程器件,更好地满足不同使用环境的要求。以(5 ,3) 滤波器为例,计算(5 ,3) 小波需要4个提升核的叠加,所提出的结构体计算正向或逆向(5 ,3)DWT ,对每帧像素1400×1400 采用15位采样数和12位合成滤波器系数,以全时钟频率运行,进行5 层分解、重构,每秒钟能处理25 帧图像,功耗为267.6 mW。 结束语 提出的可重构的提升核结构体,采用特殊的即从下至上的设计方法,保证了最大限度地重复利用性和重构特性。仿真结果说明,提升小波变换核的结构体无论在处理能力和功耗方面都取得了很好的结果,尤其在处理速度上,能满足图像处理实时性要求。将来的进一步发展是将更多的自由参数加入基本的算术模块中,保证结构体具有更好的操作性,并且使功率消耗减少,能满足不同应用场合的需要,对降低设备成本,提高使用效率有实际意义。

    时间:2019-08-20 关键词: FPGA 电源技术解析

  • 51单片机串口调试的基本方法介绍

    51单片机串口调试的基本方法介绍

    在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。 在单片机编程中,串口占了很重要的地位。传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。使用硬件仿真器的确是很有效的方法,但是也有一些缺点: 很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。 对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。 有时由于设备内部结构空间的限制,仿真头不方便接入。 有的仿真器属于简单的在线仿真型,仿真时有很多限制。例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。 1 调试前的准备工作 下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。所需的只是: ① 硬件。1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系如图1所示)。 ② 串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。如果没有合适的串口调试软件,则可使用笔者编写的一个免费的串口小工具TurboCom。除了与其他软件一样的数据收发功能外,它还有定时轮流发送自定义数据帧和自动应答(接收到指定数据帧后,自动返回相应的数据帧)这两个很有用的功能,特别适合于老化测试。这个小工具可以从网上下载。 2 基本调试命令介绍 这个串口调试方法主要是利用了Keil强大的软件仿真功能。在新版本(高于6.0)的Keil软件中,增强了软件的仿真能力,可以利用软件仿真更多的单片机功能。在这些功能中,其中有一个很重要的功能就是利用计算机的串口来模拟单片机的串口(这不同于很多软件在仿真时使用的激励文件方式,可以直接与其他串口进行通信,更加方便、灵活)。首先要介绍仿真时需要使用的两个命令:ASSIGN和MODE。 2.1 ASSIGN命令 将单片机的串口绑定到计算机的串口。基本使用方式为: ASSIGN channeloutreg 其中: channel代表计算机的串口,可以是COM1、COM2、COM3或COM4;而inreg和outreg代表单片机的串口。对于只有一个串口的普通单片机,即SIN和SOUT;对于有两个或者多个串口的单片机,即SnIN和SnOUT(n=0,1,…即单片机的串口号)。 51单片机串口调试的基本方法介绍     图1 串口连线示意图 例如: ASSIGN COM1SOUT 将计算机的串口1绑定到单片机的串口(针对只有一个串口的单片机)。 ASSIGN COM2S0OUT 将计算机的串口2绑定到单片机的串口0(针对有多个串口的单片机,注意串口号的位置)。 需要注意的是,参数的括号是不能省略的,而outreg则是没有括号的。 2.2 MODE命令 设置被绑定计算机串口的参数。基本使用方式为: MODE COMx baudrate, parity, databits, stopbits 其中: COMx(x = 1,2,…)代表计算机的串口号;baudrate代表串口的波特率;parity代表校验方式;databits代表数据位长度;stopbits代表停止位长度。 例如: MODE COM1 9600, n, 8, 1 设置串口1。波特率为9 600,无校验位,8位数据,1位停止位。 MODE COM2 19200, 1, 8, 1 设置串口2。波特率为19 200,奇校验,8位数据,1位停止位。 使用以上两个命令,就能够将计算机的串口模拟成单片机的串口了。在进行软件仿真时,所有发送到被绑定的计算机串口上的数据都会转发到Keil模拟的单片机串口上,用户程序可以通过中断处理程序或查询方式接收到这些数据;同样,单片机程序中发送到单片机串口上的数据也会通过被绑定的计算机串口发送出来,可以被其他软件所接收。利用这个特点,就可以方便地仿真、调试单片机的串口部分程序。要注意的是,这两个命令需要一起使用。 51单片机串口调试的基本方法介绍 2.3 仿真步骤 首先,用串口线将计算机的两个串口连接起来(或者是两台计算机上的两个串口)。这两个串口一个用来模拟单片机串口,另一个给调试程序使用。这个由用户自己分配,没有特殊要求。 其次,编写好用户程序,并编译通过。 然后,设置工程文件(Project)的相关参数,如图2和图3所示。主要是选择软件仿真模式(Use Simulator)以及晶振参数。     图2 仿真参数设置 为了不必每次进入仿真状态后,都需要输入串口参数设置命令,可以建立一个初始化文件。初始化文件是一个普通的文本文件,内容就是仿真时需要的命令,按照顺序一行输入一条。如图2所示,建立了一个debug.ini的初始化文件。这样,当每次进入仿真调试状态时,Keil就会自动载入 debug.ini的内容进行初始化。 为了正确仿真串口,在软件仿真调试时,在用户的Keil工程文件的属性中,还需要设置实际使用的晶振频率。这个参数非常重要,直接影响通信的波特率,可以按照实际使用的参数进行设置。要注意,这个参数的单位是MHz。 设置好参数后,就可以进行仿真了。单击工具栏的图标按此在新窗口浏览图片进入Debug(仿真调试)状态,在Output window窗口中的command文本框(一般是在左下角)中输入上面介绍的命令。例如,将PC机的串口1设置为单片机的串口: mode com1 9600,0,8,1 assign com1 Sout 然后设置断点,一般是在关键地方或与串口相关联的地方设置。再单击图标运行(Run)用户程序,使用户程序运转起来(不然是接收不到串口数据的)。这时再使用串口调试软件或用户调试软件,发送通信命令或者数据包,看用户程序是否进入断点,以及相关的变量是否正确。还可以有意发送带有错误数据的数据包,以观察用户程序的异常处理部分是否正常。一旦发现程序中的错误,可以马上停止仿真调试,立即修改代码,然后再次重复上面的步骤进行仿真。因为不需要与用户目标板联机,也不用下载代码到用户板上,所以速度非常高。以上这些步骤和使用硬件仿真器的基本一样,只不过现在使用的是软件仿真。 需要注意的是:仿真时单片机串口实际的波特率由MODE命令来指定,单片机程序中的TMOD、SCON等参数是不影响串口仿真状态的(也就是说这些参数不影响仿真的波特率,即使它们是错误的)。但是中断的使能位(如ES、EA等)还是起作用的,如果ES或EA被禁止,那么就不会进入串口中断。 因为这种方法是利用计算机的串口来仿真单片机的串口,而仿真是通过Keil软件来转换串口上的数据,不是直接转发数据的,所以在实际仿真时,处理速度会比实际单片机运行时稍微低一点。比方说仿真状态时1 s只能发送/接收10个数据帧,但在单片机硬件上运行时可能1 s就可以接收/发送50个数据帧。这与使用的计算机的速度有关,但对仿真来说,是没有任何影响的。 对于多串口的单片机,从理论上来说,可以一次绑定多个串口,只要计算机有足够多的串口。基本上,使用这种方法需要占用计算机的串口数量是单片机绑定串口的2倍。一个串口被Keil占用,用来模拟单片机的串口;另外一个串口被计算机占用,用来给单片机的串口收发数据。 3 小结 这里介绍的方法对C51和汇编语言都是适合的。它最大的好处就是简单、方便,容易使用,不需要使用任何电路,也没有特殊的要求;甚至可以在硬件电路制作好之前就将串口部分的程序编写、调试完毕。笔者使用这种方法已经很长时间了,事实证明这种方法确实非常有效。其实对于51单片机,Keil的仿真功能实在是太强大了,只要充分掌握其特点,能够熟练利用它,就可以解决工作中的大部分问题。很多工作都可以使用软件仿真来完成,根本无需任何硬件仿真器;只有一些新的外部器件的时序、接口的调试才有可能需要用到硬件仿真器。目前介绍Keil软件仿真这方面的参考书籍很少,有些讲的还是老版本的用法,不过没有关系,Keil的帮助文件写得很详细、很清楚,只要认真看明白就会使用了。使用熟练后,就会发现Keil的功能相当强。 对于串口编程,51单片机有Keil这个功能强大的开发软件,给我们带来了极大的便利;而在其他单片机软件的开发中,目前还没有这么强大的开发工具和方便的调试手段。这里有个变通的办法,就是可以先在Keil中编写并调试好串口程序,然后将程序移植到其他单片机平台中(笔者在PIC18单片机开发中就使用了这种方法,收到了很好的效果。当然这是指在使用C语言开发单片机程序时,汇编语言是没有可移植性的)。至于如何能够减小程序移植的工作量,使得程序具有更好的通用性,以最小的代价就可以平滑地移植到其他单片机平台上,也是一个非常值得探讨的问题。

    时间:2019-08-19 关键词: 计算机 单片机 电源技术解析

  • 将PIC单片机的数据存储器RAM作为寄存器使用的教程

    将PIC单片机的数据存储器RAM作为寄存器使用的教程

    pic单片机,想必大家都比较熟悉。其中,pic单片机简介、pic单片机优势以及pic单片机不足等内容,皆是入门级知识。本文将向大家介绍pic单片机的高级应用——将pic单片机的数据存储器RAM用作寄存器,本文存在一定难度,望大家用心研读。 PIC16C5X把数据存储器RAM都当作寄存器来使用以使寻址简单明洁,它们功能上可分为操作寄存器、I/O寄存器、通用寄存器和特殊功用寄存器。它们的组织结构如下图所示:这些寄存器用代号F0~F79来表示。F0~F4是操作寄存器,F5-F7是I /O寄存器,其余为通用寄存器。特殊功用寄存器地址对用户不透明。     一、操作寄存器 1、F0间址寄存器 寻址F0实际上意味着间址寻址。实际地址为寄存器选择寄存器F4的内容。 例: MOVLW 10 MOVWF  f4    ;10→f4 MOVLW  55 MOVWF  f0    ;55→f10 2、F1实时时钟/计数寄存器(RTCC) 此寄存器是一个8位计数器。和其他寄存器一样可由程序进行读写操作。它用于对外加在RTCC引脚上的脉冲计数,或对内部时钟计数(起定时器作用)。     上图中可看出RTCC工作状态由OPTION寄存器控制,其中OPTION寄存器的RTS位用来选择RTCC的计数信号源,当RTS为“1”时,信号源为内部时钟,RTS为“0”时,信号源为来自RTCC引脚的外部信号。OPTION寄存器的PSA位控制预分频器(Prescaler)分配对象,当PSA位为“1”,8位可编程预分配给RTCC,即外部或内部信号经过预分频器分频后再输出给RTCC。预分频器的分频比率由OPTION内的PS0~PS2决定。这时涉及写f1(RTCC)寄存器的指令均同时将预分频器清零。但要注意OPTION寄存器内容仍保持不变,即分配对象、分频比率等均不变。OPTION的RTE位用于选择外部计数脉冲触发沿。当RTE为“1”时为下降沿触发,为“0”时为上升沿触发。 RTCC计数器采用递增方式计数,当计数至FFH时,在下一个计数发生后,将自动复零,重新开始计数,以此一直循环下去。RTCC对其输入脉冲信号的响应延迟时间为2个机器周期,不论输入脉冲是内部时钟、外部信号或是预分频器的输出。 RTCC对外部信号的采样周期为2个振荡周期。因此当不用预分频器时,外加在RTCC引脚上的脉冲宽度不得小于2个振荡周期,即1/2指令周期。同理,当使用预分频器时,预分频器的输出脉 冲周期不得小于指令周期,因此预分频器最大输入频率可达N.fosc/4,N为预分频器的分频比,但不得大于50MHz。 当RTCC使用内部时钟信号时,如果没有预分频器,则RTCC值随指令节拍增1。 当一个值写入RTCC时,接下来的二个指令节拍RTCC的值不会改变,从第三个指令节拍才开始递增,见下图。     应注意的是尽管PIC对外部加于RTCC信号端上的信号宽度没有很严格的要求,但是如果高电平或低电平的维持时间太短,也有可能使RTCC检测不到这个信号。一般要求信号宽度要大于是10nS。 3、F2程序计数器(PC) 程序计数器PC可寻址最多2K的程序存储器。下表列出了PIC16C5X各种型号的PC长度和堆栈的长度。     单片机一复位(RESET),F2的值全置为“1”。除非执行地址跳转指令,否则当执行一条指令后,F2(PC)值会动加1指向下一条指令。 下面这些指令可能改变PC的值: a、“GOTO”指令。它可以直接写(改变)PC的低9位。对于PIC16C56/57/58,状态寄存器F3的PA1、PAO两位将置入PC的最高二位。所示“GOTO”指令可以跳转到程序存储器的任何地方。 b、“CALL”指令。它可以直接写PC 低8位,同时将PC的第9位清零。对于PIC16C56/57/58,状态寄存器F3的PA1、PAO两位将置入PC的最高二位(第10、11位)。 c、“RETLW”指令。它把栈项(堆栈1)的值写入PC。 d、“MOVWF F2”指令。它把W寄存器的内容置入PC。 e、“ADDWF F2”指令。它把PC值加1后再和W寄存器的值相加,结果写入PC。 在以上b、d和e中,PC的第9位总是被清为零。所以用这三条指令来产生程序跳转时,要把子程序或分支程序放在每页的上部地址(分别为000-0FF、200-2FF、400-4FF、600-6FF)。 4、F3状态寄存器(STATUS) F3包含了ALU的算术状态、RESET状态、程序存储器页面地址等。F3中除PD和TO两位外,其他的位都可由指令来设置或清零。注意,当你执行一条欲改变F3 寄存器的指令后,F3中的情况可能出乎你的意料。 例:CLRF F3 ;清F3为零 你得到的结果是F3=000UU100(U为未变)而不是想像中的全零。UU两位是PD和TO,它们维持不变,而2位由于清零操作被置成“1”。所以如果你要想改变F3的内容,建议你使用BCF、BSF和MOVWF这三条指令,因为它们的执行不影响其他状态位。[!--empirenews.page--] 例:MOVLW 0;0→W MOVWF F3 ;把F3除PD和TO以外的位全部清零,则你可得到F3=000UU000。 有关各条指令对状态位的影响请看第二章介绍。 在加法运算(ADDWF)时,C是进位位。在减法运算(SUBWF)时,C是借位的反(Borrow)。 例:CLRF F10 ;F10=0 MOVLW 1 ;1→W SUBWF F10 ;F10-W=0-1=FFH→F10 C=0:运算结果为负 例:MOVLW 1 ;1→W MOVWF F10 ;F10=1 CLRW ;W=0 SUBWF F10 ;F10-W=1-0=1→F10 C=1:运算结果为正 PD和TO两位可用来判断RESET的原因。例如判断RESET是由芯片上电引起的,或是由看门狗WDT计时溢出引起的,或是复位端加低电平引起的,或是由WDT唤醒SLEEP引起的。 表1.4列出了影响TO、PD位的事件。表1.5列出了在各种RESET后的TO、PD位状态。 判断RESET从何处引起有时是很必要的。例如在对系统初始化时,经常需判断这次复位是否是上电引起的。如果不是上电复位,则不再进行初始化。 页面选择位PA1、PA0的作用前面已描述过,RESET时清PA0-PA2位为零,所以复位后程序区页面自动选择在0页。 5、F4 寄存器选择寄存器(FSR) a、 PIC16C52/54/55/56 F4的0-4位在间接寻址中用来选择32个数据寄存器。5-7位为只读位,并恒为1。请参考F0寄存器描述。 b、PIC16C57/58 FSR《6:5》位用来选择当前数据寄存器体(Bank)。PIC16C57有80个数据寄存器,如图1.4所示。80个寄存器分为4个体(Bank0~Bank3),每个体的低16个寄存器的物理位置是相同的(参考§1.5.3通用寄存器的描述)。当FSR的第4位为“1”时,则要根据FSR《6:5》位来选择某个寄存器体中的某一个高16的寄存器。 注意:当芯片上电复位时,FSR《6:5》是不定的,所以它可能指向任何一个Bank。而其他复位则保持原来的值不变。 二、I/O 寄存器 PIC16C52/54/56/58有二个I/O口RA、RB(F5、F6),PIC16C55/57有三个I/O口RA、RB、RC(F5、F6、F7)。与其它寄存器一样,它们皆可由指令来读写。它们是可编程双向I/O口,可由程序来编程确定每一根I/O端的输入/输出状态。 RESET后所有的I/O口都置成输入态(等于高阻态),即I/O控制寄存器(TRISA、TRISB、TRISC)都被置成“1”。 1、F5(A口) 4位I/O口寄存器。只能使用其低4位。高4位永远定义为“0”。 2、F6(B口) 8位I/O口寄存器。 3、F7(C口)对于PIC16C55/PIC16 C57,它是一个8位I/O口寄存器。 对于PIC16C54/56/58,它是一个通用寄存器。 §1.5.3 通用寄存器 PIC16C54/56: 07H~1FH PIC16C55: 08H~1FH PIC16C57/58: 08H-0FH:共有通用寄存器(无须体选择即可寻址)。 10H-1FH:Bank0的通用寄存器 20H-2FH:物理上等同于00H-0FH。 30H-3FH:Bank1的通用寄存器 40H-4FH:物理上等同于00H-0FH。 50H-5FH:Bank2的通用寄存器 60H-6FH:物理上等同于00H-0FH。 70H-7FH:Bank3的通用寄存器。 三、特殊功能寄存器 1、工作寄存器(W) W用来存放两操作数指令中的第二个操作数,或用以进行内部数据传送。算术逻辑单元ALU把W和寄存器连接起来,ALU的运算结果通过总据总线可以送到W保存。 2、I/O控制寄存器(TRISA、TRISB、TRISC) TRISA、TRISB、TRISC分别对应I/O口A、B、C。其中TRISA只有4位,和A口对应。执行“TRIS f”指令可把W的值置入I/O控制寄存器,以此来定义各I/O端的输入/输出态。当写入“1”时,将相应的I/O端置成输入态(高阻态),当写入“0”,则将相应的I/O端置成输出态。I/O控制寄存器都是只写寄存器,在RESET后自动置为全“1”,即所有I/O口都为输入态。 3、预设倍数/RTCC选择寄存器(OPTION) OPTION可用于: a、定义预分频器的预分频参数。 b、分配预分频器(Prescaler)给RTCC或WDT。注意预分频器只能分配给RTCC或WDT其中之一使用,不能同时分配。 c、定义RTCC的信号源。 d、定义RTCC信号源的触发沿(上升沿触发或下降沿触发)。 当预分频器分配给RTCC后,所有写RTCC寄存器的指令如CLRF 1、MOVWF 1等都会清除预分频器。同理,分配给WDT时,诸如CLRWDT和SLEEP指令将清除预分频器里已有的值使其归零。 通过执行“OPTION”指令可将W值置入OPTIOW寄存器,RESET后OPTION被置成全“1”。

    时间:2019-08-19 关键词: 单片机 电源技术解析 控制

  • 单片机最小系统常见问题解析

    单片机最小系统常见问题解析

    单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统. 对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路. 下面给出一个51单片机的最小系统电路图.     说明: 复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定量计算,可以参考电路分析相关书籍. 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作) 单片机:一片AT89S51/52或其他51系列兼容单片机     特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行.这一点是初学者容易忽略的. 复位电路 一、复位电路的用途 单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。 单片机复位电路如下图: 二、复位电路的工作原理 在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2US就可以实现,那这个过程是如何实现的呢? 在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。 开机的时候为什么为复位 在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。 也就是说在电脑启动的0.1S内,电容两端的电压时在0~3.5V增加。这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。 按键按下的时候为什么会复位 在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。 总 结 1、复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。 2、按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。 51单片机最小系统电路介绍 1.51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。 2.51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。 3.51单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。 设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。 设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。

    时间:2019-08-19 关键词: 电阻 单片机 电源技术解析

  • 印度研究员开发出铁离子充电电池,能量密度为锂离子电池的60%

    印度研究员开发出铁离子充电电池,能量密度为锂离子电池的60%

    据新华社报道,印度研究人员日前宣布开发出一种可充电的铁离子电池,它以低碳钢为阳极,具备性价比高、可储存电量高等优势。 据悉,这种电池可进行150次循环充放电,在50次循环充放电结束时还能保持54%的电量,显示出良好的稳定性。当在特定条件下制造这种电池时,其能量密度可达每千克220瓦时,约为锂离子电池的60%。而在一般环境下制造出来的这种电池能量密度接近锂离子电池的40%。 研究人员说,如果以纯铁为阳极,铁离子不容易从阳极移动到阴极并在充电时重回阳极,但低碳钢中存在的少量碳促进了这一循环。他们认为,铁离子电池在充电过程中更稳定,可防止电池短路,且与常用的锂离子电池相比成本也更低。 该团队下一步重点是尝试不同的阴极材料,以进一步提高铁离子电池的性能。

    时间:2019-08-19 关键词: 印度 电源新品 铁离子电池 太阳极

  • 将PIC单片机的数据存储器RAM作为寄存器使用的教程

    将PIC单片机的数据存储器RAM作为寄存器使用的教程

    pic单片机,想必大家都比较熟悉。其中,pic单片机简介、pic单片机优势以及pic单片机不足等内容,皆是入门级知识。本文将向大家介绍pic单片机的高级应用——将pic单片机的数据存储器RAM用作寄存器,本文存在一定难度,望大家用心研读。 PIC16C5X把数据存储器RAM都当作寄存器来使用以使寻址简单明洁,它们功能上可分为操作寄存器、I/O寄存器、通用寄存器和特殊功用寄存器。它们的组织结构如下图所示:这些寄存器用代号F0~F79来表示。F0~F4是操作寄存器,F5-F7是I /O寄存器,其余为通用寄存器。特殊功用寄存器地址对用户不透明。     一、操作寄存器 1、F0间址寄存器 寻址F0实际上意味着间址寻址。实际地址为寄存器选择寄存器F4的内容。 例: MOVLW 10 MOVWF  f4    ;10→f4 MOVLW  55 MOVWF  f0    ;55→f10 2、F1实时时钟/计数寄存器(RTCC) 此寄存器是一个8位计数器。和其他寄存器一样可由程序进行读写操作。它用于对外加在RTCC引脚上的脉冲计数,或对内部时钟计数(起定时器作用)。     上图中可看出RTCC工作状态由OPTION寄存器控制,其中OPTION寄存器的RTS位用来选择RTCC的计数信号源,当RTS为“1”时,信号源为内部时钟,RTS为“0”时,信号源为来自RTCC引脚的外部信号。OPTION寄存器的PSA位控制预分频器(Prescaler)分配对象,当PSA位为“1”,8位可编程预分配给RTCC,即外部或内部信号经过预分频器分频后再输出给RTCC。预分频器的分频比率由OPTION内的PS0~PS2决定。这时涉及写f1(RTCC)寄存器的指令均同时将预分频器清零。但要注意OPTION寄存器内容仍保持不变,即分配对象、分频比率等均不变。OPTION的RTE位用于选择外部计数脉冲触发沿。当RTE为“1”时为下降沿触发,为“0”时为上升沿触发。 RTCC计数器采用递增方式计数,当计数至FFH时,在下一个计数发生后,将自动复零,重新开始计数,以此一直循环下去。RTCC对其输入脉冲信号的响应延迟时间为2个机器周期,不论输入脉冲是内部时钟、外部信号或是预分频器的输出。 RTCC对外部信号的采样周期为2个振荡周期。因此当不用预分频器时,外加在RTCC引脚上的脉冲宽度不得小于2个振荡周期,即1/2指令周期。同理,当使用预分频器时,预分频器的输出脉 冲周期不得小于指令周期,因此预分频器最大输入频率可达N.fosc/4,N为预分频器的分频比,但不得大于50MHz。 当RTCC使用内部时钟信号时,如果没有预分频器,则RTCC值随指令节拍增1。 当一个值写入RTCC时,接下来的二个指令节拍RTCC的值不会改变,从第三个指令节拍才开始递增,见下图。     应注意的是尽管PIC对外部加于RTCC信号端上的信号宽度没有很严格的要求,但是如果高电平或低电平的维持时间太短,也有可能使RTCC检测不到这个信号。一般要求信号宽度要大于是10nS。 3、F2程序计数器(PC) 程序计数器PC可寻址最多2K的程序存储器。下表列出了PIC16C5X各种型号的PC长度和堆栈的长度。     单片机一复位(RESET),F2的值全置为“1”。除非执行地址跳转指令,否则当执行一条指令后,F2(PC)值会动加1指向下一条指令。 下面这些指令可能改变PC的值: a、“GOTO”指令。它可以直接写(改变)PC的低9位。对于PIC16C56/57/58,状态寄存器F3的PA1、PAO两位将置入PC的最高二位。所示“GOTO”指令可以跳转到程序存储器的任何地方。 b、“CALL”指令。它可以直接写PC 低8位,同时将PC的第9位清零。对于PIC16C56/57/58,状态寄存器F3的PA1、PAO两位将置入PC的最高二位(第10、11位)。 c、“RETLW”指令。它把栈项(堆栈1)的值写入PC。 d、“MOVWF F2”指令。它把W寄存器的内容置入PC。 e、“ADDWF F2”指令。它把PC值加1后再和W寄存器的值相加,结果写入PC。 在以上b、d和e中,PC的第9位总是被清为零。所以用这三条指令来产生程序跳转时,要把子程序或分支程序放在每页的上部地址(分别为000-0FF、200-2FF、400-4FF、600-6FF)。 4、F3状态寄存器(STATUS) F3包含了ALU的算术状态、RESET状态、程序存储器页面地址等。F3中除PD和TO两位外,其他的位都可由指令来设置或清零。注意,当你执行一条欲改变F3 寄存器的指令后,F3中的情况可能出乎你的意料。 例:CLRF F3 ;清F3为零 你得到的结果是F3=000UU100(U为未变)而不是想像中的全零。UU两位是PD和TO,它们维持不变,而2位由于清零操作被置成“1”。所以如果你要想改变F3的内容,建议你使用BCF、BSF和MOVWF这三条指令,因为它们的执行不影响其他状态位。 例:MOVLW 0;0→W MOVWF F3 ;把F3除PD和TO以外的位全部清零,则你可得到F3=000UU000。 有关各条指令对状态位的影响请看第二章介绍。 在加法运算(ADDWF)时,C是进位位。在减法运算(SUBWF)时,C是借位的反(Borrow)。 例:CLRF F10 ;F10=0 MOVLW 1 ;1→W SUBWF F10 ;F10-W=0-1=FFH→F10 C=0:运算结果为负 例:MOVLW 1 ;1→W MOVWF F10 ;F10=1 CLRW ;W=0 SUBWF F10 ;F10-W=1-0=1→F10 C=1:运算结果为正 PD和TO两位可用来判断RESET的原因。例如判断RESET是由芯片上电引起的,或是由看门狗WDT计时溢出引起的,或是复位端加低电平引起的,或是由WDT唤醒SLEEP引起的。 表1.4列出了影响TO、PD位的事件。表1.5列出了在各种RESET后的TO、PD位状态。 判断RESET从何处引起有时是很必要的。例如在对系统初始化时,经常需判断这次复位是否是上电引起的。如果不是上电复位,则不再进行初始化。 页面选择位PA1、PA0的作用前面已描述过,RESET时清PA0-PA2位为零,所以复位后程序区页面自动选择在0页。 5、F4 寄存器选择寄存器(FSR) a、 PIC16C52/54/55/56 F4的0-4位在间接寻址中用来选择32个数据寄存器。5-7位为只读位,并恒为1。请参考F0寄存器描述。 b、PIC16C57/58 FSR《6:5》位用来选择当前数据寄存器体(Bank)。PIC16C57有80个数据寄存器,如图1.4所示。80个寄存器分为4个体(Bank0~Bank3),每个体的低16个寄存器的物理位置是相同的(参考§1.5.3通用寄存器的描述)。当FSR的第4位为“1”时,则要根据FSR《6:5》位来选择某个寄存器体中的某一个高16的寄存器。 注意:当芯片上电复位时,FSR《6:5》是不定的,所以它可能指向任何一个Bank。而其他复位则保持原来的值不变。 二、I/O 寄存器 PIC16C52/54/56/58有二个I/O口RA、RB(F5、F6),PIC16C55/57有三个I/O口RA、RB、RC(F5、F6、F7)。与其它寄存器一样,它们皆可由指令来读写。它们是可编程双向I/O口,可由程序来编程确定每一根I/O端的输入/输出状态。 RESET后所有的I/O口都置成输入态(等于高阻态),即I/O控制寄存器(TRISA、TRISB、TRISC)都被置成“1”。 1、F5(A口) 4位I/O口寄存器。只能使用其低4位。高4位永远定义为“0”。 2、F6(B口) 8位I/O口寄存器。 3、F7(C口)对于PIC16C55/PIC16 C57,它是一个8位I/O口寄存器。 对于PIC16C54/56/58,它是一个通用寄存器。 §1.5.3 通用寄存器 PIC16C54/56: 07H~1FH PIC16C55: 08H~1FH PIC16C57/58: 08H-0FH:共有通用寄存器(无须体选择即可寻址)。 10H-1FH:Bank0的通用寄存器 20H-2FH:物理上等同于00H-0FH。 30H-3FH:Bank1的通用寄存器 40H-4FH:物理上等同于00H-0FH。 50H-5FH:Bank2的通用寄存器 60H-6FH:物理上等同于00H-0FH。 70H-7FH:Bank3的通用寄存器。 三、特殊功能寄存器 1、工作寄存器(W) W用来存放两操作数指令中的第二个操作数,或用以进行内部数据传送。算术逻辑单元ALU把W和寄存器连接起来,ALU的运算结果通过总据总线可以送到W保存。 2、I/O控制寄存器(TRISA、TRISB、TRISC) TRISA、TRISB、TRISC分别对应I/O口A、B、C。其中TRISA只有4位,和A口对应。执行“TRIS f”指令可把W的值置入I/O控制寄存器,以此来定义各I/O端的输入/输出态。当写入“1”时,将相应的I/O端置成输入态(高阻态),当写入“0”,则将相应的I/O端置成输出态。I/O控制寄存器都是只写寄存器,在RESET后自动置为全“1”,即所有I/O口都为输入态。 3、预设倍数/RTCC选择寄存器(OPTION) OPTION可用于: a、定义预分频器的预分频参数。 b、分配预分频器(Prescaler)给RTCC或WDT。注意预分频器只能分配给RTCC或WDT其中之一使用,不能同时分配。 c、定义RTCC的信号源。 d、定义RTCC信号源的触发沿(上升沿触发或下降沿触发)。 当预分频器分配给RTCC后,所有写RTCC寄存器的指令如CLRF 1、MOVWF 1等都会清除预分频器。同理,分配给WDT时,诸如CLRWDT和SLEEP指令将清除预分频器里已有的值使其归零。 通过执行“OPTION”指令可将W值置入OPTIOW寄存器,RESET后OPTION被置成全“1”。

    时间:2019-08-15 关键词: 单片机 电源技术解析 控制

  • 基于stc89c52单片机和gsm模块的电力变压器防盗系统设计

    基于stc89c52单片机和gsm模块的电力变压器防盗系统设计

    在油田等地域分布辽阔的野外地区,输电线路和电力变压器因远离供电局经常面临被盗的危险,一旦输电线和电力变压器被盗,将会造成很大的经济损失,给电力系统的稳定运行和油田安全生产造成极大的隐患。随着gsm移动通信网络的迅速发展和用户的日益扩大,gsm的信号覆盖范围很广,盲区越来越少,现在gsm机站建设迅速,设计上已经覆盖了整个地区。为此,本文利用gsm通讯网络开发出的输电线路和变压器防盗系统,能有效地对偏远地区的输电线路和电力变压器的运行情况实时监控。 2 系统设计 本文主要描述了利用stc89c52单片机实现的基于gsm模块的电力变压器防盗系统,包括stc89c52单片机的功能特点、gsm短信模块工作原理、传感器工作原理。文中使用的gsm(全球移动通信系统)模块为siemens公司推出的新一代无线通信gsm模块——tc35,利用该模块可以完成短消息收发、语音传输、与pc机进行数据传输等功能。系统由单片机和gsm模块以uart(通用异步收发器)形式通信完成数据的采集和发送,并通过gsm模块将采集到的信息通过gsm网络传送给用户终端;信号的检测采用二种传感器进行信号的采集,以确保电力变压器的安全性;同时为防止电网断电等因素所造成的影响,即在电网掉电后自动启动后备电池继续保证系统的正常工作,极大地提高了系统的稳定性与可靠性;在人机交互中,采用遥控布防和撤防的方式便于控制报警系统监控状态,另外,通过电脑终端可以对系统的工作状态进行动态掌握。系统的组成框图如图1所示。     图1系统基本原理框图 3 gsm模块tc35应用设计 tc35是siemens公司推出的新一代无线通信gsm模块,可以快速安全可靠地实现系统方案中的数据、语音传输、短消息服务(short message service)和传真。模块的工作电压为3.3-5.5v,可以工作在900mhz和1800mhz两个频段,所在频段功耗分别为2w(900m)和1w(1800m)。模块有at命令集接口,支持文本和pdu模式的短消息、第三组的二类传真、以及2.4k,4.8k,9.6k的非透明模式。此外,该模块还具有电话簿功能、多方通话,漫游检测功能,常用工作模式有省电模式、idle、talk等模式。通过独特的40引脚的zif连接器,实现电源连接、指令、数据、语音信号、及控制信号的双向传输。通过zif连接器及50ω天线连接器,可分别连接sim卡支架和天线。 tc35模块主要由gsm基带处理器、gsm射频模块、供电模块(asic)、闪存、zif连接器、天线接口六部分组成。作为tc35的核心,基带处理器主要处理gsm终端内的语音、数据信号,并涵盖了蜂窝射频设备中的所有的模拟和数字功能。在不需要额外硬件电路的前提下,可支持fr、hr和efr语音信道编码。 3.1 tc35硬件设计 (1) tc35 的硬件接口。tc35模块有40个引脚,通过一个zif(zero insertion force,零阻力插座)连接器引出。这40个引脚可以划分为5类,即电源、数据输入/输出、sim卡、音频接口和控制。其中igt是启动端,系统加电后为使tc35进入工作状态,必须给igt加一个大于100ms的低脉冲,电平下降持续时间不可超过1ms。单片机通过tc35的18、19脚交换数据。 (2) tc35的开发技巧。在开发tc35的过程中,正确构建其外围电路是十分重要的。电源要求:模块的供电电压如果低于3.3v会自动关机。同时模块在在发射时,电流峰值可高达2a。同时在此电流峰值时,电源电压(送入模块的电压)下降值不能超过0.4v。所以该模块对电源的要求较高,电源的内阻+ffc联接线的电阻必需小于200mω;mcu与tc35通信:单片机通过两个i/o口控制tc35的开关机、复位等,通过串口与tc35进行数据通信,通信速率为9600kbps,采用8位异步通讯方式,1位起始位,8位数据位,1位停止位;逻辑电平的区别:tc35模块输入输出的ttl正电平逻辑不是+5v,而是+2.9v,因此必要时加端口保护;tc35上电后需要在igt引脚施加100ms左右的低脉冲才能启动。 (3) 如何解决模块无法登陆网络的问题。因为在tc35的整个外围电路中存在数字地和模拟地,考虑将上述电感换成磁珠,原因是电感无法吸收数字地和模拟地之间的高频谐波分量,而磁珠则可以很有效地吸收高频分量,很好的起到了隔离数字地和模拟地。另外,将+5v电源与tc35模块的vbatt+之间的滤波二极管换下,改为直流稳压电源(5v,2a)直接供电,解决二极管的最大导通电流达不到模块要求的瞬间的大电流(2a)的问题。 (4) 关于sim卡的管脚信号。sim卡有三种电气规范的,1.8v/3.0v/5.0v。现在我们手机上用的sim卡一般都是3.0v的。sim卡上供电受电源vcc的影响比较大,并且其纹波不能很大。在rst信号正确的前提下,正常工作时,rst信号为高电平。这时测试cl-ock和data信号的波形会发现:这两个信号在tc35对sim卡操作时才有波形,如没有操作则一般都不会有波形,这都是属于正常情况。sim卡的信号线、电源线都需要去耦。 3.2 tc35 软件指令 (1) 基本at指令:读取短信支持格式0,pdu(中英文都可);1,text(只能用于英文)。指令:at+cmgf?返回:+cmgf: 0注意:tc35默认的是text模式,因此要发中文短信必须在每次开机时更改短信支持格式。输入:at+cmgf=0返回:ok。 (2) 中英文短信的发送。英文短信的分析:at+回车:通讯握手指令,返回:ok。指令:at+cmgf=1。设置为pdu模式,为发送中文汉字准备(若开机时默认为1),返回:ok,at+cscs=“ gsm ”(若开机时默认为gsm),设置tc35的工作模式。短信息的发送分成两步:a、发送接收的手机号码,等待应答:“》“,指令:at+cmgs=”13587654321“回车(目的地址),tc35回应:at+cmgs=”1-3587654321“ 》。b、输入短信息的内容(只能是英文):test 回车。 中文短信发送的基本原理分析:使用串口调试助手成功发送的中文短信息完整过程,短信中心号码:13800513500;短信接收方号码:13587654321;短信内容:“华科大文华学院”。 指令:at+回车:通讯握手,返回:ok,指令:at+cmgf=0 设置为pdu模式,因为要发送中文汉字,返回:ok,at+cmgs=6 (此数是十进制),发送短消息的字节数(即phone+msg的字节数)》。可以接收数据:089168310 -8200705f011000b813185674523 - f10008c20c534e79d159276587534e5b66962。指令:+cmgs: 45 返回:ok (注释:08表示短消息中心地址长度;91表示短消息中心号码类型;683108200705f0表示短消息中心号码13800270500;1100表示发送短消息的编码方式;0d表示目的地址长度;91表示目的地址类型;3185674523f1——表示目的地址,即接收短消息的手机号码为13587654321;3208表示发送中文字符方式;c2表示有效期(tp-vp) 5 分钟a7(24小时);0c表示短消息长度;534e79d159276587534e5b6 -69662——表示发送中文字符的unicode码。 4 软件设计 4.1 主程序流程图 软件设计采用c语言编写、模块化程序设计。stc89c52单片机对tc35模块进行通信,首先设置波特率,通常为9600bit/s,然后再根据实际需要对中断端口进行相应的初始化设置。根据被监控对象的实际情况,主流程图如图3所示。 基于stc89c52单片机和gsm模块的电力变压器防盗系统设计 图3 系统软件主流程图 4.2部分程序源代码 以下是基于stc89c52单片机与tc35通讯接口的部分通信程序,该程序已经通过调试并在开发装置上正常运行。 //打电话ring void phonecall(void) { unchar code ringoff_tc35[]=”at+chup“; for(i=0;i《=0;i++) { sendtotc35(ring_tc35,sizeof(ring_tc35)-1); //向tc35发送打电话的at指令 sendasc(over); //回车 delay1s(25); // 延时9秒 sendtotc35(ringoff_tc35,sizeof(ringoff_tc35)-1); //关机 sendasc(over); delay1s(2); } } 本程序源代码实现打电话功能,其中考虑将at指令转化成ascii码的形式对tc35进行控制。 5 系统稳定性分析 本文研究对象为防盗系统,要求系统稳定,为此进行如下处理:在系统初始化中,间断重复启动三次,以保证能够正常登录网络,最后以短信形式加以确认。主要用单片机对tc35进行控制,单片机的稳定性不可忽视。因外部看门狗的稳定性比内部看门狗的稳定性高,于是采用外部看门狗定时清零,以适应恶劣的工作环境。电源的可靠性也至关重要,为此采用双电源模式。在外部无电源情况下采用内部蓄电池供电,根据用户需要可以采用不同容量的蓄电池以保证其供电时间;在有外接电源情况下,外部供电为主,在此时蓄电池供电不足,便自动开始充电。为了使用户了解系统的工作状态,根据客户需要以短信形式进行定时发送安全回复报告。 6 结束语 设计结合gsm网络,综合利用西门子公司的tc35模块对电力变压器实现了现代的防盗报警系统。整个设计充分考虑了系统中可能出现的各种意外情况,根据具体情况设计了相应的功能。本设计借助目前最可靠、最成熟的gsm移动网络,在软件设计上也进行了相应的人性化设计,满足不同用户的需求。

    时间:2019-08-14 关键词: 单片机 电源技术解析 控制

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