pic单片机范文

时间:2023-03-16 20:16:32

导语:如何才能写好一篇pic单片机,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

篇1

关键词:pic;USB;单片机;应用

中图分类号:TP368.12 文献标识码:A 文章编号:1674-7712 (2012) 16-0049-01

肺功能测定是临床较为常见的一种检查,对于患者肺及气道早期检查具有积极作用,同时可以对患者病情严重程度给予评估。能够通过检测呼气流速实现多项生理参数评估的医学仪器,由于一些早期肺功能测定仪不支持USB通信,在数据导入导出中不够方便,本研究通过带有USB模块的单片机改造,实现了USB通信功能。

一、PIC单片机USB模块

带改造肺功能测试仪采用的单片机为PIC18F6720型,为确保兼容性,加快改进速度,本次选用的单片机为PIC18F67J50系列单片机。

(一)USB外设

PIC18F67J50系列单片机的USB模块能够实现USB2.0串口兼容,同时可支持全速接口(12Mb/s)和低速接口(1.5Mb/s),可以全面支持中断、控制及批量传输,能够支持双向16对端点,最多32个端点(双向16对),RAM具有CPU和USB模块双重存取特性。

(二)USB电源模式

在USB电源配置方面,有着不同的要求和配置,比较常见模式为的电源模式包括Self-Power Only(仅自供电)、Dual Powe(双电源)、Bus Power Only(仅总线供电)等三种供电模式。其中仅总线供电模式下是最简单和是最常用的一种供电方式,这种方式电源自USB接口,在供电方式上非常简单。为符合USB2.0对于浪涌电流的规范化要求,Vbus同接地端间等效电容应在l0uF以下。按照USB2.0的规范,USB还应可以支持低功耗挂起模式。在USB提供V的Vbus线供电过程中,其实际电流消耗应在500uA以内,通信停止至少3ms来实现主机和外设之间的挂起模式通信。在elf-Power Only(仅自供电)模式中,USB采取自身提供电源的方式,仅有很小电源来自USB,并通常都需要增加相应的连接指示器,来显示USB和主机连接及Vbus供电情况。

(三)振荡器

USB模块具有相应的时钟要求。在低速运行状态下,需要给予USB模块6MHz的时钟脉冲频率,在全速运行状态下,需要USB模块48MHz的时钟脉冲频率为48MHz。然而,无论USB模块的时钟脉冲频率如何,单片机CPU等外设振荡器均需要在一定的时钟速度运行。

二、PIC单片机固件开发

本研究选择的PIC单片机程序环境为MPLAB IDE,改集成开发环境平台中,可全面支持机器码编译连接、源程序编写、开发调试工具等功能。软件可免费通过微芯公司官方网站进行下载,此外,在开发语言上也完全支持C语言以及第三方语言工具,主要包括:Byte Craft、CCS、B Knudsen Data、HI-TECH等。本研究中原有肺功能检测仪的采取的程序编译器为第三方提供的HI-TECH,有因此支持nc器件较少,开发成本较高,在综合考虑成本因素和实用因素的基础上,本研究最终采用的编译器为微芯公司的MPLAB C18。

而采取微芯公司的MPLAB C18需要对而这需要对肺功能检测仪原程序的变量定义实施修改,所以必须首先对MPLAB C18的变量的存储区进行定义。默认状态下,编译器会假定无跨越存储区边界问题。因此在创建超过256字节的变量中可对链接描述文件进行相应修改。

三、固件编程

肺功能检测仪固件改进的目的重要在于通过USB接口实现计算机数据处理和本机数据提取功能。因此,在主要改进容物就集中在保持原有操作代码基础上的USB的HID类通信上,实现USB总线的通信命令传送和数据采集并及时返回。

(一)USB状态和控制

在编写USB模块固件程序时会用到USB传输状态寄存器(USTAT)、USB配置寄存器(UCFG)、USB控制寄存器(UCON) 3个寄存器进行当前工作状态的设置和查询,并进入到相应的控制流程当中。

控制寄存器主要包括零电平复位、USB模块等状态配置管理;配置寄存器主要包括片上上拉电阻、总线速度、片上收发器与USB模块硬件相关的配置;状态寄存器则主要负责提供串行接口引擎(SIE)中的状态报告,一旦发现中断信号,应首先进行该寄存器的读取工作,并以此完成传输的状态的确认。

(二)USB中断

USB模块的绝大部分活动均有中断进行触发,和其他单片机中断源一样,该模块也有着自身的特定中断逻辑结构。能够通过一组寄存器允许USB中断,同时可以用一组单独的标志寄存器来实现中断事件捕获。在本研究中的单片机中断逻辑中,USB中断源均通过顶层的USB中断请求来反应和标志位USBIF,在通过中断第二层寄存器来进行确认。

四、系统流程与釆集

当肺功能测试仪开启后,应首先对单片机以及液晶屏等进行初始化处理。再通过USB检测引脚来对高电平情况进行判断,如果出现高电平则可以说明已连接上了USB线,可以对PIC单片机的USB模块进行初始化配置工作,在肺功能测试仪液晶屏上出现“连接USB线”提示,在这一期间应禁止键盘中断使能,也就是不允许实施本机操作。随后实施USB枚举过程,进行接口和端点配置。在完成配置工作后,即可以实施相应的计算机操作工作。通过控制输出端点0上位机将命令向下位机进行发送。设备完成对命令的响应工作,开始进行数据采集工作,通过中断输入端点1可实现返回数据。

参考文献:

[1]张巍,郑建彬.基于VC++实现在线签名认证系统与USB的通信[J].计算机与数字工程,2007,10.

[2]扶文树,何军,陆信如.USB HID数据通信接口的设计与实现[J].工业控制计算机,2009,22(2).

[3]叶君耀,刘克宁.加密存储设备驱动程序的优化设计[J].软件导刊,2010,2.

篇2

关键词 Microchip 单片机 功耗 编程

由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在PIC单片机开发过程中的一些经验、技巧,供同行参考。

1 怎样进一步降低功耗

功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电路形式时,可以采用中途提高工作频率的办法来解决。 具体做法是在闲置的一个I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1),如图1所示。低速状态置RB1=0。需进行快速运算时先置RB1=1,由于充电时,电容电压上升得快,工作频率增高,运算时间减少,运算结束又置RB1=0,进入低速、低功耗状态。工作频率的变化量依R1的阻值而定(注意R1不能选得太小,以防振荡电路不起振,一般选取大于5kΩ)。

另外,进一步降低功耗可充分利用“sleep”指令。执行“sleep”指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用“sleep”指令来等待事件,也可在延时程序里使用(见例1、例2)。在延时程序中使用“sleep”指令降低功耗是一个方面,同时,即使是关中断状态,Port B端口电平的变化可唤醒“sleep”,提前结束延时程序。这一点在一些应用场合特别有用。同时注意在使用“sleep”时要处理好与WDT、中断的关系。

图1 提高工作频率的方法

例1(用Mplab-C编写) 例2(用Masm编写) Delay() Delay { ;此行可加开关中断指令 /*此行可加开关中断指令*/ movlw.10 for (i=0; i

INTCON中的各中断允许位对中断状态位并无影响。当PORT B配置成输入方式时,RB引脚输入在每个读操作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置RBIF=1。在开RB中断前,也许RBIF已置“1”,所以在开RB中断时应先清RBIF位,以免受RBIF原值的影响,同时在中断处理完成后最好是清RBIF位。

3 用Mplab-C高级语言写PIC单片机程序时要注意的问题

3.1 程序中嵌入汇编指令时注意书写格式 见例3。

例3

…… …… while(1) {#asm while(1) { …… #asm /*应另起一行*/ #endasm …… }/*不能正确编译*/ #endasm …… }/*编译通过*/ …… 当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。

3.2 加法、乘法的最安全的表示方法 见例4。

例4

#include #include unsigned int a, b; unsigned long c; void main() { a=200; b=2; c=a*b; } /*得不到正确的结果c=400*/ 原因是Mplab-C以8×8乘法方式来编译c=a*b,返回单字节结果给c,结果的溢出被忽略。改上例中的“c=a*b;”表达式为“c=a;c=c*b;”,最为安全(对加法的处理同上)。

3.3 了解乘除法函数对寄存器的占用

由于PIC片内RAM仅几十个字节,空间特别宝贵,而Mplab-C编译器对RAM地址具有不释放性,即一个变量使用的地址不能再分配给其它变量。如RAM空间不能满足太多变量的要求,一些变量只能由用户强制分配相同的RAM空间交替使用。而Mplab-C中的乘除法函数需借用RAM空间来存放中间结果,所以如果乘除法函数占用的RAM与用户变量的地址重叠时,就会导致出现不可预测的结果。如果C程序中用到乘除法运算,最好先通过程序机器码的反汇编代码(包含在生成的LST文件中)查看乘除法占用地址是否与其它变量地址有冲突,以免程序跑飞。Mplab-C手册并没有给出其乘除法函数对具体RAM地址的占用情况。例5是乘法函数对0×13、0×14、0×19、0×1A地址占用情况。

例5

部分反汇编代码 #include 01A7 081F MOVF 1F,W #include 01A8 0093 MOVWF 13 ;借用 unsigned long Value @0x1 01A9 0820 MOVF 20,W char Xm @0x2d; 01AA 0094 MOVWF 14 ;借用 void main() 01AB 082D MOVF 2D,W {Value=20; 01AC 0099 MOVWF 19 ;借用 Xm=40; 01AD 019A CLRF1A ;借用 Value=Value*Xm 01AE 235F CALL 035Fh ;调用乘法函数 …… 01AF 1283 BCF 03,5 } 01B0 009F MOVWF 1F ;返回结果低字节 01B1 0804 MOVF 04,W 01B2 00A0 MOVWF 20 ;返回结果高字节 4 对芯片重复编程

对无硬件仿真器的用户,总是选用带EPROM的芯片来调试程序。每更改一次程序,都是将原来的内容先擦除,再编程,其过程浪费了相当多的时间,又缩短了芯片的使用寿命。如果后一次编程的结果较前一次,仅是对应的机器码字节的相同位由“1”变成“0”,就可在前一次编程芯片上再次写入数据,而不必擦除原片内容。

在程序的调试过程中,经常遇到常数的调整,如常数的改变能保证对应位由“1”变“0”,都可在原片内容的基础继续编程。另外,由于指令“NOP”对应的机器码为“00”,调试过程中指令的删除,先用“NOP”指令替代,编译后也可在原片内容上继续编程。

另外,在对带EPROM的芯片编程时,特别注意程序保密状态位。厂家对新一代带EPROM芯片的保密状态位已由原来的EPROM可擦型改为了熔丝型,一旦程序代码保密熔丝编程为“0”,可重复编程的 EPROM 芯片就无法再次编程了。使用时应注意这点,以免造成不必要的浪费(Microchip 资料并未对此做出说明)。

参考文献

篇3

【关键词】温度测量;PIC16F877;DS18B20;仿真测试

在日常生活经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般是电压,在转换成对应的温度,需要比较多的硬件支持,硬件电路很复杂,软件调试也复杂,制作成本高。而且测出来的温度精度也没有技术成熟的温度传感器高。

本文基于PIC单片机来设计数字式测温计,直接采用数字式温度传感器DS18B20,用单片机对18B20进行控制,来进行测温[1]。显示部分可用lcd1602,单片机可直接驱动lcd1602显示温度,硬件较简单,稳定。DS18B20采用单总线技术,容易扩展,并且具有转换速度快,转换精度高,可由片机直接读出温度并显示出来等优点。

一、设计目标和思路

本文采用PIC16F877的USART异步通信模式,可广泛应用于单片机与PC机,以及单片机与单片机之间的通信。USART接口由RC6、RC7这两只引脚构成。RC6用于数据的发送,RC7用于接收数据[2]。

当单片机需要通过USART发送数据时,只需将所发送数据送入数据缓冲寄存器TXERG,然后系统会自动将TXREG寄存器内容送入发送移位寄存器TSR,接着系统会根据所设置的波特率脉冲信号,通过RC6引脚从高位到低位依次发送出去。当系统将TXERG寄存器内容加载到TSR中时,会自动将中断发送标志位TXIF置位,根据程序决定是否进入中断。而当单片机需要通过USART接受数据时,通过RC7引脚将数据依次送入接收移位寄存器RSR中,当收到一个停止位时,移位寄存器RSR就把收到的8位数据自动送入接收数据缓冲器RCREG中。在接收数据缓冲器RCREG收到一个稳定的数据后,接收中断标志位RCIF将自动置位,根据程序决定是否进入中断。

二、原理结构图

本文利用PIC16F877和DS18B20传感器设计了测温计,其包含主控器部分、温度显示部分、传感测试部分和按键设计部分[3]。

基于PIC16F877的测温计原理电路图结构如图1所示。

其中,电源部分的S1为复位按钮它在被按得时候断开放开后自动闭合,在其断开又闭合的瞬间使整套电路中各芯片的供电电压实现从5V降到0V再升到5V的过程,从而达到复位的目的。输入电容C2一般情况不接,但当集成稳压器远离整流、滤波电路时应接入一个0.33μf的电容器,它的作用是改善纹波和抑制输入的瞬时过电压,保证78L05的输入与输出间的电压差不会超过允许值。输出电容C3一般不采用大容量的电解电容器,只要接入0.1μf的电容器便可以改善负载的瞬态响应。但是,为了减小输出的纹波电压,在输出端并联一只大容量的电解电容C4,会取得更好的效果。然而,这样将随之产生一种弊端:一旦78L05的输入端出现短路时,输出端上的大电容器上储存的电荷将通过集成稳压器内部电路调整管的发射极与基极泄放,因大容量电容器释放能量较大,会造成集成稳压器内部调整管的损坏,导致电路无法工作。为了防止这一点,在78L05的输入端与输出端之间跨接一个二极管,它为C4上电荷的泄放提供了一个分流通路,对集成稳压器起保护作用。

串口接收温度函数流程图如图2所示。

三、Protues仿真调试

为调试和检验上述的电路原理图的正确性和合理性,本文通过Protues软件仿真来进行波形调试。

在仿真调试的过程中,先后对DS18B20测温模块、lcd1602显示模块、PIC单片机的USART模块通信等,分别进行了仿真测试。待各部分均测试正确无误后,方才对整体电路进行测试。图3所示即为本文对温度测量部分进行仿真调试和测试。

从Protues的仿真结果来看,本文设计的数字温度测量电路,以PIC16F877单片机为工作处理器的核心,外接DS18B20和LCD1602,用单片机处理数字信号,再把其送入显示器显示。在经过反复的仿真调试和测试后,验证其使用起来比较方便且结果简单易读。与此同时,如果在本文涉及的基础上在扩展其功能,如多点测温、温度报警等,则只需调整PIC单片机程序即可。这样的话,本文设计的测温系统,在具有电路简单、维护方便等优点的同时,还具有扩展兼容性好、读数准确易懂等特点,能够满足日常生活对测温计的一般基本要求。

参考文献

[1]刘君华.传感器技术及应用实例[M].电子工业出版社, 2008.

[2]彭树生,庄志洪,赵惠昌.《PIC单片机原理及应用》P224-226[M].机械出版社,2001,1.

[3]李荣正.PIC单片机原理及应用[M].北京航空航天大学出版社,2005.

作者简介:

篇4

实验操作是理论联系实际的重要环节,实验报告必须在科学实验的基础上进行,实验报告的撰写是知识系统化的吸收和升华的过程,实验报告应该体现完整性、规范性、正确性、有效性。现将撰写实验报告的有关内容说明如下:

1.实验名称

2.实验目的

本次实验所涉及并要求掌握的知识点。

3.实验内容与实验步骤

实验内容、原理、原理图分析及具体实验步骤。

4.实验环境

实验所使用的器件、仪器设备名称及规格。

5.设计实验数据表格

6.实验过程与分析

详细记录在实验过程中发生的故障和问题,并进行故障分析,说明故障排除的过程及方法。

根据具体实验,记录、整理相应数据表格、绘制曲线、波形图等,并进行误差分析。

7.实验结果总结

对实验结果进行分析,完成思考题目,总结实验的心得体会,并提出实验的改进意见。

注:1.前5项必须在做实验之前完成,并由指导教师签字后才能做实验。

2.对于学生自拟实验题目、参与科研、创新实验等形式实验项目的实验报告可采用论文、实验总结报告等形式完成。

3.此封皮标准页面为16K,实验报告:实验名称:

熟悉PIC系列单片机的开发环境及简单编程

实验目的:

1. 通过顺序结构的简单程序设计,熟悉PIC系列单片机的开发环境,掌握基本应用步骤和命令;

2. 熟悉汇编语言指令,掌握基本的程序设计方法。

实验环境:

PC计算机 MAPLAB编译环境

实验原理 :

实验一:交换两个寄存器内容(例如交换f10H和f11H的内容) 实验过程比较简单,无分支程序,而且思路十分清晰,难度不大。

实验二:(选作)将某一寄存器内容中的奇偶位数据交换。

本实验的思想是:将寄存器中数据同10101010二进制数相与,得到原数据的奇数位,并向右移一位后存至一个寄存器,作为结果数据的偶位数;再将寄存器中数据同01010101二进制数相与,得到原数据的偶数位,并向左移一位后存至另外一个寄存器,作为结果数据的奇位数。最后,将这两个寄存器中的数字进行或运算,得到结果。

实验中,使用了RO作为记录原数奇位数的寄存器,RE作为记录原数偶位数的寄存器,RN作为记录员数据的寄存器,RR作为记录结果的寄存器。

实验程序:

实验一:

LIST P=16C54

RA EQU 10

RB EQU 11

RT EQU 12

ORG 1FFH

GOTO MAIN

ORG 0

MAIN NOP

MOVLW 0

MOVWF RT

MOVLW 15H

MOVWF RA

MOVLW 3AH

MOVWF RB

MOVF RA,0

MOVWF RT

MOVF RB,0

MOVWF RA

MOVF RT,0

MOVWF RB

END

实验二:(选作)

LIST P=16C54

RO EQU 10

RE EQU 11

RN EQU 13

STATU EQU 3

CARRY EQU 0

RR EQU 12

ORG 1FFH

GOTO MAIN

ORG 0

MAIN NOP

MOVLW 99H

MOVWF RN; GIVE VALUE

ANDLW B'10101010'

MOVWF RE

BCF STATU, CARRY

RRF RE; ODD->EVEN

MOVF RN,0

ANDLW &nbs p; B'01010101'

BCF STATU, CARRY

MOVWF RO

RLF RO; EVEN->ODD

MOVF RO,0

IORWF RE,0; ADD THE TWO PARTS OF THE NUMBER BY OR THEM

MOVWF RR

END

调试结果:

实验一结果:

1、赋值后

2、调换中

3、调换后

实验二结果:

1、赋值后

2、取奇数位的数值存入RE

3、将奇数位的数值右移一位

5、取偶数位的数值存入RO

6、将偶数位的数值左移一位

7、得到最后结果

实验分析与实验体会:

本实验通过顺序结构的简单程序设计,我基本掌握了PIC系列单片机的开发步骤和命令,熟悉了PIC系列单片机的开发环境MAPLAB,并在具体变成过程中,熟悉汇编语言指令,掌握基本的程序设计方法。

虽然本实验是基本练习,目的是为了熟悉实验环境,但是,在实验中还是学到了很多东西:

篇5

关键词:单片机;温度监测;自动拨号;语音报警

中图分类号:TP2文献标识码:A文章编号:1672-3198(2009)06-0272-02

1系统硬件电路的设计

1.1系统的功能框图

系统的主要组成部分包括:温度传感器DS18B20、PIC16F877单片机、可编程键盘/显示器接口芯片8279、OCM4X8C液晶显示器、MODEM、ISD2560语音芯片和信号音检测模块CR6230,系统的功能框图如图1所示。

系统选用美国Microchip公司生产的价格低廉、性能优良的PIC16F877单片机作为控制主体,充分利用其提供的软硬件资源,可使控制系统硬件电路设计相对简洁,提高系统的可靠性。但由于系统中的各种功能模块较多,每个模块都需要单片机给出一定数量的控制线、数据线等来完成相应的功能,而单片机的I/O资源有限,所以必须进行I/O扩展。这里是通过由单片机的3个I/O引脚(RC1-RC3)控制译码器74LS138从而给出8个选通信号,分别选通几个74LS373和74LS245来实现对各模块的控制与通信的。

此外,需要给单片机设计复位电路,这里采用RC复位电路,频率约为4MHz。

1.2多路温度采集

针对测量环境、精度和系统主机对监测点传输距离的不同要求,以及考虑元件的成本,选择美国DALLAS半导体公司最新推出的一种数字化单总线器件DS18B20。在硬件上,DS18B20与单片机的连接有两种方法。一种是将DS18B20的UDD接外部电源,GND接地,其I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时DS18B20的UDD、GND接地,其I/O接单片机I/O。无论是内部寄生电源还是外部供电,DS18B20的I/O口线要接5K见左右的上拉电阻。DS18B20有六条控制命令,如表1所示。

CPUCPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作和对数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。

1.3信息显示

采用OCM4X8C液晶显示模块作为输出显示。可显示汉字及图形,采用单片机8位并行连接方式,通过给定命令和显示数据完成不同界面的显示。当单片机通过译码器对连接液晶显示模块的双向锁存器74LS245使能,并且相关引脚通过单片机传送适当的电平时,给出一定的指令字。实现显示的过程是:在传送命令的状态下先选择指令集清屏,然后指定在资料写入或读取时游标的移动方向及显示的移位,开显示,设定显示地址,然后进入传送数据的状态,根据要显示的内容从中文字库中找出相应的16进制代码并将其依次传给液晶显示器(此时要注意每行显示的字数限制),之后单片机就可以对液晶显示模块进行读写操作。

1.4拨号设计

采用外置MODEM来实现拨号功能,单片机与MODEM之间采用串行通信,连接方式见图2。将电话线接入MODEM后,单片机按照RS232通信标准与MODEM相连,这里是通过MAX232芯片来实现TTL电平与RS232电平的转换,按照MODEM的工作波特率(9600bps)设置后,单片机串口发出相应AT命令可实现对MODEM的控制,同时MO-DEM在执行该命令后会返回一定的信息。返回信息对于判断MODEM是否正常工作以及电话是否拨通和被接听都有重要的作用。

选用4选1模拟开关4052芯片完成单片机与MODEM串行通信外和传感器模块的MAX485串行通信的控制。当单片机端口C的RC3=1、RC2=0、RC1=1时,译码器74LS138的译码线Y5有效,使得74LS373有效,因而来自单片机的RD4位锁存至4052的INH端,此时RD4的低电平来控制4052的选通。因4051的INH端通过反相器连接4052的INH端,所以不被同时选中。

为了实现MODEM与单片机的实时通信,将系统板上用于连接MODEM的D型插口的RST与CTS互联,DTR与DSR互联。

1.5语音控制模块

该部分主要是通过单片机控制语音芯片ISD2560来实现多段语音存储和播放。通过给定相应段地址和控制信号(录放音P/R和使能控制CE),ISD2560及其电路即可实现对多段语音的存储和播放。由于语音的存储有600个地址,所以要用A0-A9共十位进行表示,对ISD2560输入地址,首先单片机的端口D通过74LS373输入A0-A7八位地址,然后再单独输入A8、A9两个高位地址。录音和放音是单片机通过RD7控制录放音引脚P/R实现的。

1.6信号音检测模块

信号音检测模块CR6230用于实现准确识别各种电话信号音,包括拨号音、回铃音、忙音和催挂音等功能。即:若得出某种结果后,相应的信号引脚则输出有效TTL电平。

接听的判断过程是单片机控制MODEM拨号后,识别回铃音信号是否有效,若无效则重拨或改拨号码;回铃音信号有效则等待,若其变为无效则判断此时对方是否接听,此后还要根据MODEM的返回值来进一步确定是否真被接听。信号的识别需要一定的周期才可以保证可靠性和准确率,所以在检测到信号音后要延时大约1s的时间,以保证准确的识别结果;同理,当信号消失后也应略有延时再清除。硬件设计是将电话线路经通信变压器CRE变换隔离后接入到CR6230的信号输入端IN引脚。通信变压器CRE3用于电话终端产品和中继线产品的线路接口部分,技术指标符合邮电部入网标准。将CR6230的BS、RS、PS、SS引脚分别通过锁存器74LS373与单片机的D3~D0连接,单片机通过读取端口D的低四位就能获得CR6230返回的当前信号状态。另外,若单片机通过控制译码器的Y2引脚将CR6230的CS引脚设置为接收低电平时,BS、RS、PS、SS引脚也将被设置为低电平,这样,其上的信号被清除以等待接收新的信号。

2系统的软件设计流程图

系统软件设计的难点在于对DS18B20的控制(如图3)。

3结语

设计以PIC单片机系统为核心,由单片机、温度传感器、RS-485串口通信和计算机组成,利用了DS18B20“一线总线”数字化温度传感器,能够对多点的温度进行实时巡检。各检测单元(从机)能独立完成各自功能,同时能够根据主控机的指令对温度进行定时采集,测量结果不仅能在本地显示,而且可以利用单片机串行口,通过RS-485总线及通信协议将采集的数据传送到主控机,进行进一步的存档、处理。主控机负责控制指令的发送,控制各个从机进行温度采集,收集测量数据,并对测量结果(包括历史数据)进行整理、显示和存储。主控机与各从机之间能够相互联系、相互协调。本系统运行稳定、工作精度高,经测试,在-10℃~+70℃间测得误差为0.25℃,80℃到105℃时误差为0.5℃,当T>105℃误差增大到1℃左右。实践证明,该控制系统操作方便,维修简单,运行稳定、可靠。

参考文献

[1]王志鹏.可编程逻辑器原理与程序设计[M].北京:北京航天航空出版社,2005.

[2]刘启中,李容正,王力生,等.PIC单片机原理及应用[M].北京:北京航天航空出版社,2003.

[3]李雪梅.简单实用的有线报警系统[J].微型计算机信息测控自动化,2005,(7):144-145.

[4]文哲雄,罗中良.单总线多点分布式温度监控系统的设计[J].微型计算机信息测控自动化,2005,(6):63-65.

篇6

【关键词】单片机;PIC16F877A;A/D转换;Proteus

随着科技进步,机械自动化水平不断提高。当前人力资源匮乏,企业被要求改善工作环境的背景下,对传统机械进行自动化改造势在必行。本文的研究解决的问题就是为了减轻传统粉粒物料运输车在卸料过程中对人工操作的过分依赖。同时实现自动卸料后可以减轻粉尘对操作工身体的伤害。

PIC单片机具有较强的驱动电流,处理数据速度较快。内部整合了多个模块,可以降低电路的开发难度。

1 电路设计与驱动器模型

根据卸料的步骤,在Proteus里设计完成相应动作的硬件电路。为减小电磁驱动器对PIC单片机干扰,这里采用光电耦合元件PC827进行强弱信号隔离。利用小信号放大管BC184与中功率放大管TIP31、TIP32构成H桥直流电磁驱动电路[1],如图1。

柳州运力双仓粉粒物料运输车的卸料流程图[2]为:

上图通过控制信号端口M3与M4,其组合有以下三种[3]:

(1)M3:M4=01时的工作原理为:

M3端口为低电平时Q13、Q10截止,Q15、Q9导通,电磁驱动器左端为高电平。M4端口为高电平时Q11、Q16截止,Q12、Q14导通,电磁驱动器右端为低电平。此时电磁驱动器推动阀门开启。

(2)M3:M4=10时电磁驱动器拉动阀门关闭。

(3)M3:M4=00或者11时电磁驱动器停止工作。

电磁驱动器利用线圈导电产生电磁力推动动铁芯进行阀门的开关,电磁驱动器模型[4]如图3。

根据图2控制流程图,通过Proteus设计的系统控制电路。图中将AN2作为A/D输入端口,共阳极LED屏显示实时罐体的气压值,PIC单片机通过光电耦合元件PC827与驱动电路隔离。卸料系统电路如图4。

2 PIC单片机C语言程序设计

当前设置输入PIC单片机A/D端口的模拟电压为0~5V,罐体内最大气压为0.2MPa。在MPLAB平台上利用HI-TECH PICC编写C语言程序[4]。

利用C语言10个常用的函数,可以编写出大部分复杂PIC单片机控制程序,使控制程序可读性较强,移植性较好,并且缩短了系统的开发时间。

将以上完整程序进行编译烧写入单片机内,在Proteus虚拟环境中可以模拟卸料的基本动作。由于实际中使用的是电磁驱动器,因其结构简单须利用机械结构对驱动器进行限位,从而到达预期的阀门开度。

3 控制系统的改进

以上控制电路只是实现了阀门开关的基本动作。从实际应用角度来看,需要添加一些附加功能,才能投入实际应用中。在本系统是一个可扩展控制的电路,在RD的I/O口有多余的引脚,因此对于三仓的粉粒物料运输车,仅仅需要在RD引脚增加2对控制端口。对于不同卸料高度,对管道内二相流体流动性有不同的影响。因此可以根据流体出口的密度,利用PIC单片机控制助风阀的开度,对管道内二相流体流动性进行控制,提高卸料的效率,同时便于粉粒物料运输车的卸料系统能够实现智能化。

4 结论

PIC单片机高速度、低电压、低功耗、大电流,减少硬件电路设计的复杂性。图4所示为卸料系统的基本硬件电路,利用PIC单片机可以很好的对电路进行简化,增强电路的可控性。

利用C语言进行单片机编程,可以降低系统的开发难度。开发者不必过多的了解单片机的内部结构,只需要了解某些外设特殊寄存器相关位的设置。而且C语言比汇编语言可读性较强,能够更好地发现编程的逻辑错误。在MPLAB平台上利用HI-TECH PICC编译器,可以对所编写程序进行自动优化,使程序转换成二进制时更加的精炼,减少占用内部存储空间。同时PICC编译器可以实现自动分页,编程者不用过多考虑PIC单片机分页问题。对具有基本C语言能力的编程者,也能较快编写所需的控制程序。利用PIC单片机与C语言结合进行控制电路设计,将极大提高产品设计、研发的效率。

【参考文献】

[1]韩军,周镜平.基于PIC单片机的直流电机控制器研究[J].制造业自动化,2011,1(33):147-149.

[2]刘丽,蒋存波,王聪.粉状物料运输车智能卸料控制器的设计[J].科学技术与工程,2008,8(23):6372-6374.

篇7

关键词:PIC;TCP/IP;嵌入式; 以太网

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21589-01

One Kind Embedded Ethernet Based on the PIC Monolithic Integrated Circuit to Turn on the System

LI Zhong-lin,YUN Gui-quan

(Computer Engineering Department,Sichuan College of Vocational and Information Technology,Guangyuan 628017,China)

Abstract:This article constructs the system is Embedded System by the PIC16F877 monolithic integrated circuit achievement the central processing element,and Realizes the TCP/IP agreement stack through the hardware integrated circuit S-7600A agreement stack chip, Because the ethernet already became one kind widely to turn on Internet the way, May turn on through the RTL8019A ethernet control chip this system the ethernet, Then turns on Internet through the ethernet, thus may realize Embedded system regarding this the long-distance access and the control.

Key words:PIC;TCP/IP;Embedded;Ethernet

1 引言

目前大多数嵌入式系统是以微控制单元(MCU),与一些监测、伺服、指示设备配合实现一定的功能。在一些工业中,有时要求实现多个嵌入式系统之间的信息通信。可以用串行总线RS-232、工业控制总线CAN等总线将多个嵌入式系统连接起来形成一个网络,但这种网络的通信范围比较小,并且一般是孤立于Internet以外的。Internet现已成为社会重要的基础信息设施之一,是信息流通的重要渠道,如果嵌入式系统能够连接到Internet上面,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方。

将嵌入式系统与Internet结合起来的想法其实很早以前就有了,主要的困难在于,Internet上面的各种通信协议对于计算机存储器、运算速度等的要求比较高,而嵌入式系统中除部分32位处理器以外,大量存在的是8位和16位MCU,支持TCP/IP等Internet协议将占用大量系统资源,或根本不可能。

本文将以专用硬件实现TCP/IP协议,并以8位PIC单片机做了中央处理器构建一个能实现Internet访问的嵌入式系统。

2 系统硬件

系统框图

如以上系统框图所示,主要的硬件包括:PIC16F877,S-7600A,RTL8019A,62256等。下面介绍一下主要部件所完成的功能及在系统中的作用。

(1)PIC16F877

它主要完成系统的数据处理功能。要完成从S-7600A来的PPP包的处理使之转换IP包。还要完成对用户接口来的数据的读取,处理,以及整个系统的协调。

(2)S-7600A

它是大规模集成电路工艺的TCP/IP协议栈芯片,支持:TCP/IP(Ver 4),UDP,PPP协议。对从PIC来的数据封装过程如下:

其它部件RTL8019A作为网络控制芯片,起网络适配功能。62256为32K的SRAM,作为系统的数据存储器。

3 系统的工作流程

4 结束语

该系统具有体积小,成本低,功耗低等特点。并且采用系统直接接入网络的方式,即每个系统都有自己的IP地址。因此不用再配网关。

参考文献:

[1]骆丽.嵌入式系统设计.北京航空航天大学出版社,2004.

[2]袁勤勇,黄绍金,唐青.嵌入式系统构件(原书第2版).机械工业出版社,2002.

篇8

0 引言

PIC18F__8单片机是美国微芯公司推出的16位RISC指令集的高级产品,由于芯片内含有A/D、内部E2PROM存储器、I2C和SPI接口、CAN接口、同步/异步串行通信(USART)接口等强大的功能,具有很好的应用前景。但是,目前介绍其应用和以C语言编程的中文参考资料很少。本文将探讨该型单片机异步串行通信的编程应用,程序用HI-TECH PICC-18 C语言编写,并在重庆大学-美国微芯公司PIC单片机实验室的PIC18F458实验板上通过。

1 PIC18FXX8单片机同步/异步收发器(USART)

通用同步/异步收发器(USART)模块是由PIC18FXX8内的三个串行I/O模块组成的器件之一(USART也叫串行通信接口即SCI),可以配置为全双工异步方式、半双工同步主控方式、半双工同步从动方式三种工作方式。

TXSTA是PIC18FXX8单片机串行通信发送状态和控制寄存器,RCSTA是接收状态和控制寄存器。由于在实际工程中,异步方式用得最多,这里仅介绍异步工作方式,其它方式可参阅相关资料。

1.1 USART 异步工作方式

在异步工作方式下,串行通信接口USART采用标准的不归零(NRZ)格式(1位起始位、8位或9位数据位和一位停止位),最常用的数据位是8位。片内提供的8位波特率发生器BRG可用来自振荡器时钟信号产生标准的波特率频率。通过对SYNC位(在TXSTA寄存器中)清零,可选择USART异步工作方式。

1.2 USART波特率发生器(BRG)

USART带有一个8位的波特率发生器(BRG),这个BRG支持USRAT的同步方式和异步方式。用SPBRG寄存器控制一个独立的8位定时器的周期。在异步方式下,BRGH位(控制寄存器TXSTA的)也被用来控制波特率。在同步方式下,用不到BRGH位。表1给出了在主控方式下(内部时钟)不同USART工作方式时的波特率计算式。

表1 主控方式下的波特率计算式

SYNC

BRGH=0(低速)

BRGH=1(高速)

(异步)波特率=FOSC/[64(X+1)]

波特率 = FOSC/[16(X+1)]

1

(同步)波特率=FOSC/[4(X+1)]

1.3 USART 异步工作方式配置

下面是串行通信异步工作方式配置步骤(顺序可以改变):

(1)配置发送状态和控制寄存器TXSTA;

(2)配置接收状态和控制寄存器RCSTA;

(3)配置RX(RC7引脚)、TX(RC6引脚)分别为输入和输出方式;

(4)通过设定的通信波特率配置SPBRG寄存器,计算公式参见表1;

(5)设置串行通信接收或发送中断是否使能;

(6)清串行通信接收或发送中断标志;

(7)设置串行通信接收中断或发送中断的优先级是高或低优先级中断方式,PIC18单片机默认情况下是高优先级中断,若是低优先级中断,则必须进行设置;

(8)设置串行通信接收和发送数据是否允许。

若用到了中断功能,还需设置总中断和中断使能,以开放未屏蔽的中断。

2 USART接口硬件电路

利用PC机配置的串行口,可以很方便地实现PC机与PIC18单片机的串行数据通信。PC机与PIC单片机USART连接最简单的是三线方式。由于PIC单片机输入、输出电平为TTL电平,而RS-232C PC机配置的是RS-232C标准串行接口,二者电气规范不一致,因此要完成PC机与微控制器的串行数据通信,必须进行电平转换。图1为PIC18F458单片机的RS-232电平转换电路。图中MAX232(或MAX202)将PIC18单片机TX输出的TTL电平信号转换为RS-232C电平,输入到PC机,并将PC机输出的RS232C电平信号转换为TTL电平输出到PIC微控制器的RX引脚。J9和PC机的连接方式见RS-232标准,与单片机相接的D型头(J9)的2脚(PIC接收信号)与接PC机D型头的3脚(PC机发送信号)相连,与单片机相接的D型头(J9)的3脚(PIC发送信号)与接PC机D型头的2脚(PC机接收信号)相连,二者的5脚与5脚相连(地相连)。PC机串口数据的发送和接收显示均可采用各种串口调试软件,我们使用的是串口调试助手V2.2(或V2.1、V2.0均可),在网上可以下载该调试软件,该软件操作简单,这里不作介绍。

3 USART异步工作方式编程

串行通信的接收有查询和中断2种方式,在实际应用中,一般不采用查询接收数据,常用的是中断接收数据。发送有中断发送和非中断发送,在下面的例程中我们采用了中断接收数据,发送数据采用中断方式还是非中断方式可以在程序中通过对发送方式标志Send_Mode(不为0,中断方式发送;=0,非中断方式发送)进行设置实现。

在PIC单片机发送数据时,发送中断标志TXIF不能用软件清0,只有当新的发送数据送入发送数据寄存器TXREG后,TXIF位才能被硬件复位,因此在程序中清该标志是无效的。采用中断发送数据的方法是:在主程序中启动发送一串数据的第一个数据,然后利用发送完成中断启动下一个数据发送,当一串数据发送后,不再发送数据,但有发送完成中断标志,程序还要进入一次中断,这最后一次中断对数据发送是无用的,必须将该标志清0,采用的方法是禁止发送使能(TXEN=0)而引起发送被终止或对发送器复位。

下面是一个用串行通信进行接收和发送数据的例程,程序实现功能:PIC18单片机接收到PC机下发的8个数据后,将收到的8个数据以中断或非中断发送方式返送回PC机。

#include "pic18.h" /* PIC18系列的头文件 */

unsigned char receive232[8]; /* 接收数据数组 */

unsigned char send232[8]; /* 发送数据数组 */

unsigned char receive_count=0; /* 接收数据个数计数 */

unsigned char send_count=0; /* 发送数据个数计数 */

unsigned char *point

er; /* 发送数据指针 */

unsigned char i; /* 程序中用到的循环变量 */

unsigned char SciReceiveFlag; /* =1,接收到8个数据 */

unsigned char Send_Mode=0; /* 不为0,中断方式发送;=0,非中断方式发送 */void sciinitial() /* 串行通讯初始化子程序 */

{

TXSTA=0x04; /* 选择异步高速方式传输8位数据 */

RCSTA=0x80; /* 允许串行口工作使能 */

TRISC=TRISC|0X80; /* :将RC7(RX)设置为输入方式 */

TRISC=TRISC&0Xbf; /* RC6(TX)设置为输出 */

SPBRG=25; /* 4M晶振且波特率为9600时,SPBRG设置值为25 */

PIR1=0x00; /* 清中断标志 */

PIE1=PIE1|0x20; /* 允许串行通讯接口接收中断使能 */

RCIP=0; /* 设置SCI接收中断为低优先级中断 */

CREN=1; /* 允许串口连续接收数据 */

if(0==Send_Mode) TXEN=1; /* Send_Mode=0,非中断方式发送,串口发送数据使能 */

else /* Send_Mode=1,中断方式发送 */

{

PIE1=PIE1|0x10; /* 允许中断发送 */

TXIP=0; /* 发送低优先级中断 */

}

}

void interrupt low_priority LOW_ISR() /* 低优先级中断子程序 */

{

if(RCIF==1) /* RS232接收中断 */

{

RCIF=0; /* 清中断标志 */

receive232[receive_count]=RCREG; /* 接收数据并存储 */

send232[receive_count]=RCREG; /* 接收数据存放到发送缓冲数组 */

receive_count++; /* 接收计数器加1 */

if(receive_count>7) /* 如果已经接收到8个数据 */

{

receive_count=0; /* 接收计数器清0 */

SciReceiveFlag=1; /* 置接收到8个数据标志 */

}

}

else if((0!=Send_Mode)&&(TXIF==1)) /* 中断发送数据方式且为发送中断 */

{

if(send_count>7) /* 已经发送完8个数 */

{

TXEN=0; /* 发送不使能 */

return;

}

else

{

send_count++; /* 发送计数器加1 */

TXREG=*pointer++; /* 发送当前应发送数据,发送指针加1 */

}

}

}

main() /* 主程序 */

{

INTCON=0x00; /* 关总中断 */

ADCON1=0X07; /* 设置数字输入输出口,不用作模拟口 */

PIE1=0; /* PIE1 的中断不使能 */

PIE2=0; /* PIE2 的中断不使能 */

PIE3=0; /* PIE3 的中断不使能 */

Send_Mode=1; /* Send_Mode不为0,中断方式发送数据;

Send_Mode =0,非中断方式发送数据 */

sciinitial(); /* 串行通讯初始化子程序 */

IPEN=1; /* 使能中断高低优先级 */

INTCON=INTCON|0xc0; /* 开总中断、开接口中断 */

while(1)

{

if(1==SciReceiveFlag) /* 是否接收到8个通信数据 */

{

SciReceiveFlag=0; /* 清接收到8个通信数据标志 */

if(0!=Send_Mode) /* Send_Mode不为0,中断方式发送 */

{

send_count=0; /* 发送数据计数清0 */

pointer=&send232[0]; /* 发送指针指向发送数据数组首地址 */

TXREG=*pointer++; /* 发送第一个数据后,将发送指针加1 */

TXEN=1; /* 使能发送 */

}

else /* Send_Mode =0,非中断方式发送数据 */

{

pointer=&send232[0]; /* 发送指针指向发送数据数组首地址 */

for(i=0;i<8;i++)

{

TXREG=*pointer++; /* 发送数据后,将发送指针加1 */

while(1) /* 等待发送完成 */

{

if(TXIF==1) break; /* 等待发送完成 */

}

}

}

}

}

}

篇9

关键词:弧光接地; 金属接地;铁磁谐振

中图分类号:TM864文献标识码:A

[WT]文章编号:1672-1098(2011)02-0066-05

收稿日期:2011-03-31

基金项目:合肥学院科研发展基金计划资助项目(08KY008ZR)

作者简介:龙夏 (1982-),男,湖南湘西自治州人,助教,硕士,主要研究方向为测控技术。

[JZ(〗[WT3BZ]Design of DSPIC-based Arc-Suppression and Resonance Eliminating Device

LONG Xia, TAN Ming , XIAO Lian-jun

(Department of Computer Science & Technology, Hefei University, Hefei Anhui 230601, Chian)

Abstract:In order to solve easy occurrence of arc in current distribution network, over-voltage of metal grounding, magnetic resonance phenomena and its hazards, control algorithm of arc and harmonic elimination was proposed.

How to use the microcontroller hardware and software design to make accurate judgments of grounding and resonant failure, and make them a certain degree of stability and fault tolerance were presented.

Key words:arc grounding; metal grounding; ferro resonance

在我国3~35 kV供电系统中,大部分为中性点不接地系统,这种系统在发生单相接地时,电网仍可带故障运行,这就大大降低了运行成本,提高供电系统的可靠性,但这种供电方式在单相接地电流较大时容易产生弧光接地过电压和相间短路,给供电设备造成了极大的危害。以前的解决办法是在中性点加装消弧线圈补偿电容电流来抑制故障点弧光发生的机率。很显然,这种方法的目的是为了消除弧光,但由于消弧线圈的自身的诸多特点,很难对电容电流进行有效补偿,特别是高频分量部分对供电设备造成的危害无法克服[1]。

而当电压互感器的非线性电感与线路对地电容发生匹配时会引起铁磁谐振过电压,会威胁到电力系统的安全运行,损坏电气设备,严重时会引起电压互感器的爆炸,造成变电站母线停电事故,造成严重后果[2]。长期以来,电力系统中消除铁磁谐振的方法一般是在PT开口三角绕组中并联一个电阻来破坏谐振点,复杂的电力环境造成谐振点的不唯一,所以这种方法很难做到完全消谐,费时费力。

智能消弧装置,该装置在出现弧光接地时,通过一组可以分相控制的真空接触器,使故障相接地,达到彻底消除弧光的目的[3]。

本设计采用PIC高性能DSP系列单片机为处理器,实时采集电网三相电压及PT开口电压,采用合理的算法,当检测到故障相出现弧光接地时发出控制信号,使故障相弧光接地迅速转变为金属性接地,而检测到铁磁谐振时驱动可控硅动作消除由铁磁谐振引起的过电压,并配以监控界面,便于修改参数,能够很好地起到消弧消谐的目的,保护电网安全。

1装置工作原理

当电网正常工作时,PT开口三角处零序电压为零,一旦线路发生故障,中性点对地绝缘的供电系统会出现零序电压,将零序电压作为启动信号开始计算,然后再根据发生故障时每相电压的情况进行逻辑分析计算,判定接地故障发生的相别及接地属性,再根据判定结果做出以下处理:

1) 如果发生间歇性弧光接地,控制器使故障相对应的真空接触器闭合,使系统由不稳定的弧光接地瞬间转变为稳定的金属接地,故障相电压降为零,电弧消失。500 ms后断开真空接触器,并再次判断,若故障消失,则说明本地弧光接地为电网电压冲击引起的瞬时性接地故障,系统已恢复。若再次检测到故障,则认定为永久性的接地故障,再次闭合真空接触器,记录故障,声光报警,并向上位机上传故障记录,等待工作人员处理。

2) 如果发生金属接地故障,则记录故障,声光报警,不做任何处理,等待工作人员处理。

3) 如果发生三相断线故障,则记录故障,声光报警,等待工作人员处理。

4) 如果发生50 Hz基频、100 Hz、150 Hz倍频铁磁谐振,驱动可控硅三次瞬间短接PT开口端,破坏谐振条件,消除铁磁谐振,并记录故障。谐振频率的判定可以通过快速FFT判别谐振频率[4]。

2 硬件设计

2.1 系统介绍

控制器是系统的核心,其性能的优劣直接影响系统的性能。选用DSPIC33FJ128GP206为处理器,电路包括模拟量采样转换电路、485通信电路、可控硅触发电路、真空接触器触发电路、HMI电路及声光报警等(见图1)。由4路电压互感器采样三相电压及PT开口电压,经过一定处理变换为单片机AD口能够处理的0~3V电压,单片机利用采样得的4路电压,辅助以一定的算法,判断当前接入电网是否存在弧光接地、金属接地、PT断线以及电磁谐振现象,若存在,在液晶屏上显示当前的故障,存储故障,并做出相应的处理。

图1 系统框图

2.2 MCU介绍

在本设计采用PIC公司的高性能16位数字信号控制器DSPIC33FJ128GP206,16位宽数据总线,24位宽指令,可寻址最大4M 指令字的线性程序存储空间,可寻址最大64 kB 的线性数据存储空间,具有最多67个中断源,最多85个IO口,具有SPI、IIC、UART、DCI、增强型CAN、PWM等外部接口,方便使用,同时具有两个AD通道,可进行顺序、同时等各种方式的采样。在此利用其同时采样4路电压信号,并判定是否发生弧光接地、谐振等故障,同时外扩键盘、显示、通信、报警等功能。

2.3 信号采样电路

根据分析需采样三相交流相电压电压UA、UB、UC及PT开口电压UPT,送入单片机内部AD采样前需经过一定的变换,即降压、交转直。4路交流电先通过电压互感器降压,再通过基准电压抬升至直流。电压互感器选用南京择明电子的ZM-BPT系列电压互感器,变比为456 V/3.53 V,额定输入电压为380 V,额定输出电压为2.941 V,过载倍数1.2,耐压强度3 000 V,完全能达到要求。电压互感器输出小信号交流电,而AD只能处理单极性电压,所以通过由LM258输出的1.65 V基准电压抬升后转为单极性AD合理范围的电压信号,并通过滤波送入AD,同时加入一个3.3 V的稳压管保护AD端口(见图2)。

图2 信号处理电路

对于DSPIC33系列的单片机,内部有两个10位/12位AD模块,最多有32个模拟量输入引脚,转换速度最高达1.1MSPS,最多4通道同时采样,可以选择不同的触发源,转换结果通过DMA传送,预排转换序列,在精度要求不是很高的情况下完全能达到要求。在本设计中,要求同时采样三相电压及PT开口电压,由此算出4路通道的有效值,并判断开口电压序列是否出现谐振,DSPIC33的内部AD完全能达到转换要求。 在此选用AN5、AN4、AN3、AN2分别作为三相电压及PT开口电压的输入通道,采用4通道同时采样、分时转换的策略。

2.4 开关量电路

在系统中需要监控机柜中多路开关量的状态,包括三路真空接触器合闸信号、三路高压熔丝熔断信号、一路隔离刀开关信号及一路远程复位信号。同时需要输出多路开关量,包括失电报警、断线报警、谐振报警、三相弧光接地报警等。电网环境比较恶劣,现场信号极易串入弱电系统,使系统控制逻辑紊乱甚至损坏。为保护弱电控制系统,所有输入输出量与系统接入时均通过光电隔离,实现了测控系统和现场环境的隔离,增强了系统的抗干扰能力。选用Toshiba的4通道非线性光耦TLP523-4,最大输出电流可达150 mA。输出开关量通过光耦后驱动固态继电器给机柜相应的24 V控制报警信号。机柜相应的输入信号均为24 V开关量,有一定的杂波,为保证系统正确运行,送入前经过简单的滤波,具体如图3所示。

图3 光电隔离

2.5 可控硅触发电路

采用先进的过零触发电路, 以电压过零型双向可控硅取代由分立元件组成的功放电路及脉冲变压器等驱动环节, 简化了触发控制电路的结构, 并提高了控制器的可靠性[5]。

采用MOC3081芯片设计晶闸管过零触发电路。当电力系统正常工作时, PT开口三角处零序电压为零,一旦系统发生谐振或单相接地, PT开口三角处即伴有不同频率成分的零序电压,多为倍频电压和分频电压。发生谐波时,MCU 只需改变MOC3081输入端电平即可立即触发双向晶闸管导通;切除时,只要撤销触发信号即可,开关在电流过零之后会自行关断。这样,MCU就可有效控制晶闸管的导通及导通时间,消除有害谐波。具体电路如图4所示。

图4 可控硅触发电路

2.6 人机接口

人机接口由LCD显示和键盘组成。LCD主要显示一次侧电压互感器三相电压、PT开口电压、故障类型及故障记录、系统时间等。键盘主要用于系统参数设置、故障记录浏览、通信参数设置、系统时间设置等。

2.7 通信设置

系统采用485通信,485通信采用差分方式传输,可靠性高、传输距离远,在电力系统中得到广泛应用。采用MODBUS通信规约,报文格式分为下行报文(监控向装置下发报文)、无故障上行报文(装置向监控中心上发报文)、故障上行报文(装置向监控中心上发报文)。报文用于上传故障记录、三相电压及PT开口电压、开关量状态等。

3 软件设计

控制器实时采样三相电压及PT开口电压,分别计算三相电压及PT开口电压的有效值。DSPIC33内部AD可以实现4通道同时采样,并可以切换通道,实现任意采样。在此采样同步采样、分时转换的策略,为方便进行FFT,每周波采样点数定为128个点,采样每个点的时间为156.25μs,DSPIC内部AD完全能达到要求。在采样并判断4路电压有效值的同时,通过快速FFT判断PT开口电压是否出现倍频、基频及分频谐振,主要判断50 Hz基频谐振、 100 Hz和150 Hz倍频谐振、 25 Hz和15 Hz的分频谐振。为防止由于外部环境的扰动造成控制器的误动作,在设计中采用了延时动作的策略,根据实验,选定在10个周波内连续出现故障的周波数大于6个时认定为故障,否则认定为扰动,取得了良好的效果,不仅能及时动作,同时提高了抗扰动能力(见图5)。

图5 控制器主程序流程图

经过理论分析和长期的各种环境的实验及经验, 总结出一套判断各种故障的数据组, 取得了良好的效果, 并在长期使用中证明是稳定可靠的(见表1)。

4 结束语

本文提出一种基于DSPIC单片机的消弧消谐一体机的研制方案,并对信号采样处理、开关量控制、可控硅控制、人机接口及通信等模块进行了详细的描述,并给出实现方案。该装置能够准确测量三相电压及PT开口电压,并能准确判定并消除弧光接地、铁磁谐振、短线等故障。将故障状态记录在液晶屏上的同时将故障数据记录并上传至PC监控中心。该系统具有一定的稳定性和抗干扰能力,已经在某公司研发成功并投入使用,取得了良好稳定的效果。

参考文献:

[1] 高亚栋,杜斌.中性点经小电阻接地配电网中弧光接地过电压的研究[J ]. 高压电器, 2004, 40 (5):345 - 348.

[2] 郭光荣. 电力系统继电保护[M ]. 北京:高等教育出版社, 2006:1-37.

[3] 仁,董浩斌,李景禄.自动消弧装置的接入对配电网运行的影响及对策[J].华北电力技术,2003(8):18- 21.

篇10

【关键词】直流电机;单片机;模糊控制;Fuzzy-PID参数自整定

一、引言

通常,工业生产中对于直流电机转速控制的要求有调速、加速或减速、稳速三个方面。其中,前两个要求已能很好地实现,但工程应用中稳速指标却往往不能达到预期的效果,稳速即要求在生产过程中直流电机能以所需要的转速稳定运行,并具有良好的抗干扰能力。

稳速很难达到要求的原因在于数字直流调速装置中的PID调节器对被控对象及其负载参数变化适应能力差。模糊控制不要求被控对象的精确模型且适应性强,为了克服常规数字直流调速装置的缺点,可将模糊控制与PID调节器结合,形成fuzzy-PID复合控制方案,设计能在负载、模型参数的大范围变化以及非线性因素的影响下均可以满足控制稳定转速精度要求的直流电机控制器。

二、硬件设计

整个直流电机调速系统的硬件由电机控制模块、速度反馈模块、隔离保护模块、电机驱动模块、过流保护模块、串口通信模块几部分组成。速度反馈模块由安装在直流电机的输出轴上的增量式光电编码盘反馈电机的实际位置,它的输出直接联到LM629的A、B输入端,形成反馈环节。主控单元采用AT89S52单片机实现模糊控制以及与运动控制芯片LM629的数据传送,单片机通过LM629获得电机转速数据,并通过中值滤波得到实际转速V,之后经模糊运算得到的KP、KI、KD参数,再发送至LM629。电机驱动模块采用LMD18200实现受限单极性驱动方式。过流保护模块采用比较器LM339构成。系统采用RS232串口与PC机实现通信。

三、软件设计

(一)直流电机Fuzzy-PID控制器的设计

本控制系统采用Fuzzy-PID参数自整定控制,即在一般的PID控制系统的基础上,采用模糊推理思想,加上一个模糊推理环节。模糊推理环节是为了根据系统实时状态调节PID的参数而设置的。

由Fuzzy-PID参数自整定控制系统结构图可知,模糊控制器实际上是对PID调节参数进行修正,其输入语言变量为直流电机转速偏差绝对值│E│和直流电机转速偏差变化率绝对值│EC│,输出语言变量为KP、KI、KD三个参数。

用于在线自整定PID参数的模糊控制器是以误差和误差变化率为输入语言变量,以比例系数、积分系数和微分系数为输出语言变量的双输入三输出模糊控制器,其控制规则其控制规则就是对参数KP、KI、KD的调节规则。由此可建立模糊调节规则表,再通过模糊推理和模糊运算,计算得到KP、KI、KD参数的精确值,以此做为PID调节的整定值,从而实现Fuzzy-PID参数自整定控制的功能。

(二)控制系统AT89S52单片机程序实现

在本系统中单片机主要工作是对LM629的控制,其中包括LM629硬件软件启动、相关运动参数的设定,速度数据采集,实现模糊控制,并完成与上位机的数据通信。单片机程序采,其内部含有梯形速度发生器和数字PID调节器,极大地简化了位置伺服控制模块的软件设计。其PID控制算法可表示为:

为进一步提高控制精度,达到稳速的效果,对此算法进行改进后得到Fuzzy-PID参数自整定控制算法。即在PID算法的基础上,通过计算当前系统误差e和误差变化率e,e、e则构成此二维模糊控制器的输入量,再利用模糊规则进行模糊推理,实时计算进行PID参数调整,得到此时针对直流电机转速调节最适合的PID参数。

模糊隶属度函数的实现方式可以采用的点斜式存储方式实现。为了简化该程序设计,实验中将│E│和│EC│共设置为5种简单组合。

四、结论

通过实验,Fuzzy-PID参数自整定控制系统较好地实现了对直流电机转速的稳定控制。加上上位机监控平台的使用,使对该直流电机的转速控制更加方便快捷。当前,直流电机调速系统的控制方案层出不穷,并且控制效果也越来越好,自适应模糊控制及模糊神经网络控制等智能控制方式也是直流调速系统控制的重要手段。

参考文献:

[1] 陈梅,杨琳琳,许正荣.直流电机的模糊PID控制[J].自动化技术与应用,2008,02.

[2]纪友芳,林美娜.模糊PID复合智能控制参数自整定研究[J].微计算机应用,2007,08.