STM控制器资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章BACnet专用控制器软硬件系统
4.1 BACnet专用控制器硬件系统
4.1.1硬件结构
本控制器的硬件平台为嵌入式STM32V5开发板,主要由STM32F103微控制器组成,该微控制器带有以太网接口和RS485接口,其他还包括电源模块、ADC(数/模转换器)模块、存储器单元等错误!未找到引用源。

硬件模型如下图所示:
路由器
工作站
图控制器硬件构成
4.1.2 STM32MCU简介
本控制器主芯片选用基于ARM Cortex-M3 32位RISC内核的高性能STM32F103VET6。

因为拥有内置的ARM内核,因此它与所有的ARM工具和软件兼容,所以软件开发平台我们选取Keil μVision5。

芯片的主要特性如下:●工作频率为72MHz;
●工作电压为2.0V--3.6V,工作温度在-40°C至+105°C的范围;
●它具有100引脚封装,有着多达80个快速I/O端口和联接到两条APB总线
的外设;
●内置高速存储器(128K字节的闪存和20K字节的SRAM);
●2个12位的ADC,用于对输入电源和负载电流检测,具有双采样和保持功
能,A/D测量范围:0-3.6 V,片上集成了温度传感器;
●拥有4个通用16位定时器、2个看门狗定时器以及一个PWM定时器,所以
在时序方面能够达到BACnet需求。

●3个USART接口,其中一个用于MS/TP总线的串口收发;
●2个I2C(SMBus/PMbus)和2个SPI同步串行接口(1兆位/秒);
●内嵌4至16MHz高速晶体振荡器、带校准功能的32kHz RTC振荡器、40kHz
的RC振荡器、经出厂调校的8MHz的RC振荡器;
●一个USB和一个CAN接口;
●支持三种低功耗模式:睡眠模式、停机模式和待机模式,用以保证低功耗应
用的省电要求。

●调试模式包括:串行线调试(SWD)和JTAG接口,本文使用JTAG调试。

4.1.3 RS485通信模块
本控制器中使用的RS-485收发器芯片为SP3490。

SP3490是+3.3V低功耗的全双工收发器,符合RS-485电气规范,能够满足本文控制器有关串行通信的需求,数据传输速率可高达10Mbps(带负载),可实现低功耗操作,而且同时不会降低性能。

其他特性还包括:
●可与+5V的逻辑电路共同工作;
●-7V~+12V的共模输入电压范围;
●±200mV 的接收器输入灵敏度;
●允许在同一串行总线上连接32个收发器等;
●兼容LTC490 和SN75179。

图4-2 RS-485接口电路
4.1.4电源模块
通过稳压器AMS1117-3.3输入+5V,提供3.3V的固定电压输出,为了降低
电磁干扰,电容C1-C5为CPU提供BANK电源滤波。

VREF+采用VDDA电源基准。

LED灯显示当前电源连通状态。

为RTC的备份电源采用V1 3.3V锂离子片状电池。

该稳压器应用范围广泛,可用于高效线性稳压器、后置稳压器、用于交换式电源、5V至3.3V线性稳压器、有源SCSI终端等。

图4-3 电源模块电路
4.1.5时钟源电路
共需要两路时钟输入,一路是CPU处理器的工作时钟,另一路提供给RTC 电路。

低速外部时钟源(LSE)为32.768KHz晶体谐振器B2。

C10、C11谐振电容选择6P。

外部晶体/陶瓷谐振器(HSE)为8MHz晶体谐振器B1,C8、C9谐振电容选择10P,系统的时钟经过PLL模块将时钟提高到72MHz。

图4-4 时钟源电路
4.1.6 JTAG 接口
JTAG(Joint test action group)也是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片代码的烧写和测试。

因为ARM 内核的处理器中都集成了JTAG 调试模块,本文选用的STM32处理器就是如此,所以对于ARM 系统来说,使用JTAG 的调试模式最方便。

同时JTAG 调试具有很多的优点,比如软件硬件均可调试,十分便捷、无需任何监控程序、可以重复利用JTAG 硬件测试接口,还能够在RAM 和ROM 中设置断点。

综上考虑,本文选取了JTAG 作为本控制器的调试模式,控制器的JTAG 接口电路如下图:
图4-5 JTAG 接口电路 4.2 BACnet 专用控制器软件设计
本文中的控制器是一个按照BACnet 互操作性要求设计的BACnet 专用控制器(B-ASC ),采用了主流的软硬件技术,具有模拟输入/输出、数字输入/输出。

控制器的软件设计以嵌入式实时操作系统µC/OS-Ⅱ为基础,采用多任务机制,通过任务调度和任务监视,具有较好的实时性和可靠性。

软件层面的模型如下图4-6:
网络与服务Device Communication Control 或Read Property 或Write Property Result+或者Result -I-have 或者I-am
图4-6 控制器软件模型
4.2.1需求分析
由于使用一致性类和功能组的概念进行BACnet系统的说明和设计有一定难度且较为抽象,所以为了更清晰明了的对BACnet网络中的DDC控制系统进行说明和描述,ASHRAE 13 DDC(ASHRAE Guideline-13,Special Direct Digital Control System)总结了DDC系统的体系结构、输入/输出接口结构、通信、程序配置和系统测试等方面,定义了一种设计及说明DDC控制系统的标准化方法错误!未找到引用源。

该方法将对楼宇自控系统内任意设备间的交互内容描述总结为以下
5个互操作域:
(1)“数据共享”(Data Sharing)互操作域;
(2)“报警与事件管理”(Alarm and Event Management)互操作域;
(3)“时间安排”(Scheduling)互操作域;
(4)“趋势或日志”(Trending)互操作域;
(5)“设备与网络管理”(Device and Network Management)互操作域。

BACnet协议共定义了6个类型的BACnet标准设备:
①操作员工作站(Operator Workstation,B-OWS)
②楼宇控制器(Building Controller,B-BC)
③高级应用控制器(Advanced Application Controller,B-AAC)
④专用控制器(Application Specific Controller,B-ASC)
⑤智能执行器(Smart Actuator,B-SA)
⑥智能传感器(Smart Sensor,B-SS)
这6种标准设备各自实现不同类别的互操作域(Interoperation Area)。

本文设计的控制属于BACnet专用控制器(B-ASC),它所实现的功能用互操作域描述如下:
(1)数据共享:允许其他设备访问所有对象的属性值;允许其他设备(如操作员工作站B-OWS)修改所有或部分对象的属性值;
(2)报警与事件管理:不要求支持该项功能;
(3)时间安排:不要求支持该项功能;
(4)趋势与日志:不要求支持该项功能;
(5)设备与网络管理:只允许设置状态和控制参数。

具体到实际中,一个典型的BACnet控制器应具备以下几个方面的功能:(1)通信功能:正确收发报文,能够和网络内其他的BACnet设备进行通信。

(2)监视功能:监视与它相连的控制设备的状态,并能够将其状态信息传达到网BACnet络中。

(3)控制功能:能够控制与其相连的底层设备的运行状态。

4.2.2基于BACnet协议的控制器通信
本文使用了BACnet的一个开源协议进行二次开发,最新版本的源码可以从网站下载,本文使用的源码版本为bacnet-stack-0.8.2。

该开源协议栈可移植到多种体系结构的芯片中,可实现BACnet服务器、客户机和路由器等功能,使用时根据需要进行选择。

协议栈同时实现了大部分的BACnet协议标准服务的编码和解码函数,对于比如模拟输入/输出、数字输入/输出等常用的BACnet对象也得到应用,可以满足本文的开发使用需求。

BACnet协议栈在本文所设计控制器中的整体实现过程如下图4-7所示:
图4-7 协议栈实现示意图
根据手上STM32开发板的硬件配置和考虑到实验室应用环境中的数据参数,我们在程序中建立了五种BACnet 对象:一个Device 对象、Binary_Input 对象、Binary_Output 对象、Analog_Input 对象、Analog_Output 对象。

Binary_Input 对象对应如回风机运行状态和故障状态,Binary_Output 对象对应开发板上的继电器输出,控制相连接开关的启停,Analog_Input 对象对应连接传感器输入的模拟量值例如温度、湿度、压力等,Analog_Output 对象对应输出的模拟量信号如回风机频率调节等。

Device 对象则是对设备的概括描述,包含了基本信息。

对控制器中BACnet 参数的配置包括MAC 地址、设备对象实例等。

设备对象实例没有硬性要求,只要不和互联网络内其他设备重复即可,此处设置为103;因为实验室内还有另外5个标准MS/TP 设备,所以为了有序而将MAC 地址设置为6。

控制器与其他BACnet 设备间的通信基于不同的应用服务,具有不同的互操作功能。

本文的BACnet 专用控制器主要具有数据共享和网络管理两部分互操作内容。

通过ReadProperty 、WriteProperty 、Who-Is 、Who-Has 等完成服务发起方和服务执行方之间的操作。

4.2.3 PID 控制算法
作为楼宇自控系统,需要对很多环境参数进行控制,例如温度、湿度、压力等,而控制器在运行时可以集成一些控制算法来实时控制设备运行状态。

在自控系统中,数据参数会一直处于变化状态,很难建立出一个精确的数学模型,采用PID 控制算法在此时就可以起到较好的效果。

因为该算法的简单、鲁棒性强等优点,目前在楼宇DDC 控制器中应用最为广泛。

一般PID 算法的表达式为:
()()()()⎪⎪⎭⎫ ⎝⎛++=⎰dt t de T dt t e T t e K t t
p D 0I 1u (4.1) 对应模拟控制器的传递函数为:
()()()⎪⎪⎭
⎫ ⎝⎛++==S T S T K s E s U D I p 11s D (4.2) 式中的参数,u(t)为调节器的输出信号;
e(t)为调节器输入的偏差信号,等于测量值与给定值之差;
K p 为调节器的比例系数;
T I 为调节器的积分时间常数;
T D 为调节器的微分时间常数;
基本PID算法根据控制器输出和执行机构的对应关系,又分为位置型和增量型两种,相比较而言,增量式PID算法运算。

相关文档
最新文档