文档库 最新最全的文档下载
当前位置:文档库 › can控制寄存器

can控制寄存器

can控制寄存器
can控制寄存器

1.CAN总线简介

控制器局部网络(CAN ControllerAreaNetwork)是德国Bosch公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯协议。1991年9月PHILIPS公司制定并颁布了CAN2.0技术规范;1993年11月国际标准化组织(ISO)正式颁布了关于CAN总线的ISO11898标准,为CAN总线的标准化、规范化应用铺平了道路。

世界各半导体厂商推出了许多CAN总线产品。一类是专用的CAN控制器芯片,如Intel 公司的82526,82527;PHILIP公司的82C200,SJA1000;NEC公司的72005等;另一类是嵌入CAN接口的单片机,如Intel公司的87C196CA/CB;PHILIP公司的

80C592,80CE598;Motorola公司的68HC05X4,68HC05X16,TI公司的

TMS320F240x系列DSP等。

CAN总线具有如下特点:

1)结构简单,通信介质可是双绞线、同轴电缆或光纤;

2)通信方式灵活。可以多主从方式工作,可以点对点、点对多点及全局广播方式发送和接收数据;

3)采用短帧通讯格式,保证了实时性和可靠性,可满足一般工业应用;

4)非破坏总线仲裁技术,具有多优先级;

5)集成了CAN协议的物理层和数据链路层功能,可完成对通讯数据的成帧处理工作。

CAN总线具有良好功能特性和极高的可靠性,现场抗干扰能力强。广泛应用于工业测控领域。

2.CAN总线接口的硬件设计

图1 CAN总线接口电路

硬件设计使用了TI公司的TMS320LF2407A的DSP芯片,其CAN总线接口的硬件电路如图1所示。一般在CAN控制器和物理总线间采用82C250驱动芯片,提供对总线的差动发送和接收功能。但是因为82C250为5V供电,而F2407采用3.3V供电,两芯片间需要电平转换电路。我们选用了只需3.3V供电的CAN总线收发驱动芯片

SN65HVD230。

F2407的内部集成有CAN控制器。该控制器是一个16位的外设模块,支持CAN2.0B 协议,具有6个8字节邮箱;具有可编程的中断配置、总线唤醒功能,以及自动回复、自

动重发、错误诊断等功能。CAN模块的结构框图如图2所示。

图2 CAN控制器结构框图

访问CAN模块可分为控制/状态寄存器和6个邮箱的访问。CAN控制器总共有15个16位的控制寄存器,控制着位定时器、邮箱的发送或接收使能、错误状态及CAN中断等。邮箱位于一个48×16位的RAM空间,每个邮箱由邮箱标示寄存器、邮箱控制寄存器及存储空间组成,最大可存储8字节数据。

3.CAN总线接口的程序设计

CAN的通讯采用短帧格式。每个数据帧由帧起始、仲裁域、控制域、数据域、校验域、应答域和帧结束组成。F2407支持标准帧格式和扩展帧格式,如图3所示。标识符是作为报文的名称,在接收器的验收判断和仲裁过程确定访问优先权中使用;远程发送请求位(RTR)确定发送远程帧还是数据帧;数据长度码(DLC)确定每帧发送几个字节数据。

图3 CAN信息帧

在使用CAN控制器前必须对它的一些内部寄存器进行设置。如流程图4和流程图5所示,需配置位定时器和初始化邮箱。位定时器的BCR1和BCR2寄存器决定了CAN控制

器的通信波特率、同步跳转宽度、采样次数和重同步方式。邮箱初始化需设置邮箱的标识符,发送的是远程帧还是数据帧及对发送的数据区赋初值。这样,邮箱就能进行正常的发送和接收工作了。

图4 配置位定时器流程图

图5初始化邮箱流程图

CAN控制器的发送邮箱有邮箱4、5及被配置为发送方式的邮箱2、3。如流程图6所示,在写数据到发送邮箱后,如果相应的发送请求位使能,则信息帧被发送到CAN总线上。邮箱权限高的先发送,发送失败将再次发送。

邮箱0、1和被配置为接收方式的邮箱2、3为接收邮箱,CAN控制器只接收邮箱标识符相同的信息,或被局部屏蔽寄存器(LAM)忽略的信息,此时接收屏蔽使能位(AME)为1。接收信息的过程如流程图7所示。

图6 信息发送流程图

图7信息接收流程图

4.结论

现今的工控设备正向着网络化方向发展,本文设计了基于DSP的CAN总线网络接口,应用于自行研制的交流变频调速设备中。CAN总线接口与传统的RS232串行接口相配合,增强了设备的网络通讯能力,使远程操作功能得以实现。

汇编教程控制寄存器和系统地址寄存器

80386控制寄存器和系统地址寄存器如下表所示。它们用于控制工作方式,控制分段管理机制及分页管理机制的实施。 控制寄存器CRx BIT31 BIT30—BIT12 BIT11—BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 CR0 PG 0000000000000000 ET TS EM MP PE CR1 保留 CR2 页故障线性地址 CR3 页目录表物理页码000000000000 BIT47—BIT16 BIT15—BIT 全局描述符表寄存器GDTR 基地址界限中断描述符表寄存器IDTR 基地址界限 BIT15—BIT0 局部描述符表寄存器LDTR 选择子任务状态段寄存器TR 选择子BIT31—BIT0 BIT31—BIT0 BIT11—BIT0 基地址界限属性 基地址界限属性 <一>控制寄存器 从上表可见,80386有四个32位的控制寄存器,分别命名位CR0、CR1、CR2和CR3。但CR1被保留,供今后开发的处理器使用,在80386中不能使用CR1,否则会引起无效指令操作异常。CR0包括指示处理器工作方式的控制位,包含启用和禁止分页管理机制的控制位,包含控制浮点协处理器操作的控制位。CR2及CR3由分页管理机制使用。CR0中的位5—位3 0及CR3中的位0至位11是保留位,这些位不能是随意值,必须为0。 控制寄存器CR0的低16位等同于80286的机器状态字MSW。 1.保护控制位 控制寄存器CR0中的位0用PE标记,位31用PG标记,这两个位控制分段和分页管理机制的操作,所以把它们称为保护控制位。PE控制分段管理机制。PE=0,处理器运行于实模式;PE=1,处理器运行于保护方式。PG控制分页管理机制。PG=0,禁用分页管理机制,此时分段管理机制产生的线性地址直接作为物理地址使用;PG=1,启用分页管理机制,此时线性地址经分页管理机制转换位物理地址。关于分页管理机制的具体介绍在后面的文章中进行。 下表列出了通过使用PE和PG位选择的处理器工作方式。由于只有在保护方式下才可启用分页机制,所以尽管两个位分别为0和1共可以有四种组合,但只有三种组合方式有效。

汇编寄存器功能详解

数据寄存器(AX、BX、CX、DX) 1.寄存器AX通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、 除、输入/输出等操作,它们的使用频率很高; 2.寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 3.寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位 操作中,当移多位时,要用CL来指明移位的位数; 4.寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算, 也可用于存放I/O的端口地址; 变址寄存器(SI、DI) 寄存器SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便 指针寄存器(BP、SP) 寄存器BP和SP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。 它们主要用于访问堆栈内的存储单元,并且规定: BP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据; SP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶 段寄存器(CS、DS、ES、SS、FS、GS) 段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址 CS 代码段寄存器(Code Segment Register),其值为代码段的段值 DS 数据段寄存器(Data Segment Register),其值为数据段的段值; ES 附加段寄存器(Extra Segment Register),其值为附加数据段的段值 SS 堆栈段寄存器(Stack Segment Register),其值为堆栈段的段值; FS 附加段寄存器(Extra Segment Register),其值为附加数据段的段值 GS 附加段寄存器(Extra Segment Register),其值为附加数据段的段值 在16位CPU系统中,它只有4个段寄存器,所以,在此环境下开发的程序最多可同时访问4个段; 在32位CPU系统中,它共有6个段寄存器,所以,在此环境下开发的程序最多可同时访问6个段. 指令指针寄存器 指令指针EIP、IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。在具有预取指令功能的系统中,下次要执行的指令通常已被预取到指令队列中,除非发生转移情况。所以,在理解它们的功能时,不考虑存在指令队列的情况。 16位标志寄存器 9个标志位,它们主要用来反映CPU的状态和运算结果的特征。 1.进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的 最高位产生了一个进位或借位,那么,其值为1,否则其值为0。 2.奇偶标志PF(Parity Flag)奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为 偶数,则PF的值为1,否则其值为0 3.辅助进位标志AF(Auxiliary Carry Flag) 在发生下列情况时,辅助进位标志AF的值被置为1,否 则其值为0:

寄存器分配

寄存器分配,是通过将程序变量尽可能地分配到寄存器,从而提高程序执行速度的一种方法。寄存器是编译器优化中最为重要的问题之一(好的寄存器分配能够提高程序执行速度超过250%);也是编译器理论中最热点的研究领域之一(研究界已经提出来大量寄存器分配相关的算法)。 1. 图着色(graph coloring)方法是解决寄存器分配问题最常用的方法。 利用相交图(interference graph)来表示程序变量的生命期是否相交,将寄存器分配给变量的问题,可以近似地看成是给相交图着色:相交图中,相交的节点不能着同一颜色;每一种颜色对应一个寄存器。Chaitin等人最早提出了基于图着色的寄存器分配方法其着色思路采用了Kempe的着色方法,即,任意一个邻居节点数目少于k的节点,都能够被k着色。判断一个图是否能够被k(k>=3)种颜色着色,即k着色问题,被Karp证明是一个NP-complete问题。 但是,寄存器分配不仅仅是图着色的问题。当寄存器数目不足以分配某些变量时,就必须将这些变量溢出到内存中,该过程成为spill。最小化溢出代价的问题,也是一个NP-complete问题。如果简化该问题——假设所有溢出代价相等,那么最小化溢出代价的问题,等价于k 着色问题,仍然是NP-complete问题。 此外,如果两个变量的生命期仅仅因为出现在同一个拷贝指令中而相邻,那么,通过将这两个变量分配到同一个寄存器,就可以消除该

拷贝指令,成为coalescing。这个方向的努力在Chaitin的文章以后的1/4个世纪,成为推动寄存器分配的主要动力之一,涌现出了包括aggressive coalescing,conservative coalescing和optimistic coalescing。但是,将两个变量分配到同一个寄存器,等价于将这两个变量合并成同一个变量,生命期合并,因而会加剧相交图的聚簇现象,降低相交图的可着色性。Bouchez等人证明了目前的coalescing问题都是NP-complete的。 为了降低相交图的聚簇现象,提高相交图的可着色性,可以通过将变量拷贝给一个临时变量,并将以后对该变量的使用替换成对该临时变量的使用,从而将一个变量的生命期分解成两个变量的生命期,称为live range splitting。显然,这是一个与coalescing的作用相反的过程。Bouchez等人考虑了该方法的复杂度。 此外,寄存器分配还需要考虑寄存器别名(aliasing)和预着色(pre-coloring)的问题。寄存器别名是指,在某些体系结构中,一个寄存器的赋值可能会影响到另外一个寄存器。比如,在x86中,对AX寄存器的赋值,会影响AL和AH寄存器。预着色是指,某些变量必须被分配到特定的寄存器。比如,许多体系结构会采用特定寄存器来传递函数参数。 George和Appel发展了Chaitin的算法,更好地考虑了coalescing过程和赋值过程,以及各过程之间的迭代,在基于图着色的寄存器分配方法中具有广泛的影响。 3. 线性扫描算法

51串口控制寄存器

SCON是MCS-51单片机的一个可位寻址的专用寄存器,用于串行数据通信的控制。单元地址为98H,位地址为98H~9FH。寄存器的内容及位地址表示如下: 各位的说明如下: 1) SM0 、SM1——串行口工作方式选择位 其状态组合和对应工作方式为: SM0 SM1工作方式 0 0 方式0 0 1 方式1 1 0 方式2 1 1 方式3 2) SM2——允许方式2、3的多机通信控制位 在方式2和3中,若SM2=1且接收到的第九位数据(RB8)为1,才将接收到的前8 位数据送入接收SBUF中,并置位RI产生中断请求;否则丢弃前8位数据。若SM2 =0,则不论第九位数据(RB8)为1还是为0,都将前8位送入接收SBUF中,并产 生中断请求。 方式0时,SM2必须置0。

3) REN——允许接收位 REN=0 禁止接收数据 REN=1 允许接收数据 4) TB8——发送数据位8 在方式2、3时,TB8的内容是要发送的第9位数据,其值由用户通过软件来设置。5) RB8——接收数据位8 在方式2、3时,RB8是接收的第9位数据。 在方式1时,RB8是接收的停止位 在方式0时,不使用RB8 6) TI——发送中断标志位 在方式0时,发送完第8位数据后,该位由硬件置位 在其它方式下,于发送停止位之后,由硬件置位。 因此,TI=1表示帧发送结束,其状态既可供软件查询使用,也可请求中断。 TI由软件清“0”。 7) RI——接收中断标志位 在方式0时,接收完第8位数据后,该位由硬件置位。 在其它方式下,于接收到停止位之时,该位由硬件置位。 因此,RI=1表示帧接收结束,其状态既可供软件查询使用,也可请求中断。 RI由软件清“0”。

PID控制器设计及其参数整定

一、绪论 PID 参数的整定就是合理的选取PID 三个参数。从系统的稳定性、响应速度、超调量和稳态误差等方面考虑问题,三参数作用如下: 比例调节作用:成比例地反映系统的偏差信号,系统一旦出现了偏差,比例调节立即产生与其成比例的调节作用,以减小偏差。随着P K 增大,系统的响应速度加快,系统的稳态误差减小,调节应精度越高,但是系统容易产生超调,并且加大P K 只能减小稳态误差,却不能消除稳态误差。比例调节的显著特点是有差调节。 积分调节作用:消除系统的稳态误差,提高系统的误差度。积分作用的强弱取决于积分时间常数i T ,i T 越小,积分速度越快,积分作用就越强,系统震荡次数较多。当然i T 也不能过小。积分调节的特点是误差调节。 微分调节作用:微分作用参数d T 的作用是改善系统的动态性能,在d T 选择合适情况下,可以减小超调,减小调节时间,允许加大比例控制,使稳态误差减小,提高控制精度。因此,可以改善系统的动态性能,得到比较满意的过渡过程。微分作用特点是不能单独使用,通常与另外两种调节规律相结合组成PD 或PID 控制器。 二、设计内容 1. 设计P 控制器 控制器为P 控制器时,改变比例系数p K 大小。 P 控制器的传递函数为:()P P K s G =,改变比例系数p K 大小,得到系统的阶跃响应曲线

当 K=1时, P 当 K=10时, P K=50时,当 P

当P K =100时, p K 超调量σ% 峰值时间p T 上升时间r T 稳定时间s T 稳态误差ss e 1 49.8044 0.5582 0.2702 3.7870 0.9615 10 56.5638 0.5809 0.1229 3.6983 0.7143 50 66.4205 0.3317 0.1689 3.6652 0.3333 100 70.7148 0.2506 0.0744 3.6410 0.2002 仿真结果表明:随着P K 值的增大,系统响应超调量加大,动作灵敏,系统的响应速度加快。P K 偏大,则振荡次数加多,调节时间加长。随着P K 增大,系统的稳态误差减小,调节应精度越高,但是系统容易产生超调,并且加大P K 只能减小稳态误差,却不能消除稳态误差。 2. 设计PI 控制器 控制器为PI 控制器时,改变积分时间常数i T 大小(50=P K 为定值) PI 控制器的传递函数为: 11 ()PI P I G s K T s =+? ,改变积分时间常数i T 大小,得到系统的阶跃响应曲线

寄存器(register)

寄存器 Scope of register: 寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。 1、寄存器- 特点及原理 寄存器又分为内部寄存器与外部寄存器,所谓内部寄存器,其实也是一些小的存储单元,也能存储数据。但同存储器相比,寄存器又有自己独有的特点: ①寄存器位于CPU内部,数量很少,仅十四个; ②寄存器所能存储的数据不一定是8bit,有一些寄存器可以存储16bit数据,对于386/486处理器中的一些寄存器则能存储32bit数据; ③每个内部寄存器都有一个名字,而没有类似存储器的地址编号。 寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过“端口”交换数据,外部寄存器具有寄存器和内存储器双重特点。有些时候我们常把外部寄存器就称为“端口”,这种说法不太严格,但经常这样说。 外部寄存器虽然也用于存放数据,但是它保存的数据具有特殊的用途。某些寄存器中各个位的0、1状态反映了外部设备的工作状态或方式;还有一些寄存器中的各个位可对外部设备进行控制;也有一些端口作为CPU同外部设备交换数据的通路。所以说,端口是CPU和外设间的联系桥梁。CPU对端口(Ports)的访问也是依据端口的“编号”(地址),这一点又和访问存储器一样。不过考虑到机器所联接的外设数量并不多,所以在设计机器的时候仅安排了1024个端口

模糊控制器的设计

模糊控制器的设计 PID控制器的设计 的PID控制方法设计控制器时,由于被控对象为零型系统,因此我们必须加 入积分环节保证其稳态误差为0。 首先,我们搭建simulink模型,如图1。 图1 simulink仿真模型 由于不知道Kp,Kd, Ki,的值的大致范围,我们采用signal constraints 模块进行自整定,输入要求的指标,找到一组Kp, Kd, Ki的参数值,然 后在其基础上根据经验进行调整。当选定Kp=2, Kd=0.95, Ki=0.8时,可 以得到比较好的响应曲线。调节时间较短,同时超调量很小。响应曲线如图2所示。 将数据输出到工作空间,调节时间ts=2.04s,超调量% 0。可以看出, PID控制器的调节作用已经相当好。 我们选定的被控对象的开环传递函数为G(s)厂中,采用经典 图2 PID控制响应曲线

模糊控制器的设计 1、模糊控制器的结构为: 图3模糊控制器的结构 2、控制参数模糊化 控制系统的输入为偏差e和偏差的变化率ec,输出为控制信号u。首先对他们进行模糊化处理。 量化因子的计算k X max X min * x max*X min 比例因子的计算k * u max * u min u max u min 其中,X;ax,X;in为输入信号实际变化范围的最大最小值;X max,X min为输入信号论域的最大最小值。U;ax,为控制输出信号实际变化范围的最大最小值, U max,U min输出信号论域的最大最小值。 表1被控参数的模糊化 相应的语言值为NB, NM,NS, ZO, PS PM,PB分别表示负大、负中、负小、零、正小、正中、正大。 3、确定各模糊变量的隶属函数类型 语言值的隶属度函数就是语言值的语义规则,可分为连续式隶属度函数和离散化的隶属度函数。本系统论域进行了离散化处理,所以选用离散量化的隶属度函数。

图染色法的寄存器分配

图染色法的寄存器分配 计算机科学与技术系98级吴汉唐

摘要 本文讲述了寄存器分配的图染色法理论。 Chaitin 和他的同伴,在IBM 的Yorktown Heights研究中心,实现了第一个基于图染色法的全局的寄存器分配器。后来,Rice 大学的Preston Briggs 对Chaitin的算法进行了改进和扩展。 Chaitin的算法悲观地假设任何高度数的结点都不能被染色,只能被抛出(spilled)。Briggs的算法乐观地认为高度数的结点有可能被染色,从而获得更低的抛出开销(spill costs),和更快的代码。 一介绍 (一)编译器和优化 一个优化编译器分为三个层次: ●前端把源语言转换为中间代码。这个转换依赖于源语言的结构,需要几 遍扫描(pass)代码才能完成。编译时的错误检查就在这一层。我们可 以理想地认为前端是只与语言有关的、与机器无关的。 ●优化器包含几遍的扫描(pass),每一遍扫描对中间代码执行特定的转 换。我们感兴趣的是全局优化,就是从整个函数搜集有用信息,再去做 优化。一般的全局优化包括强度削减(strength reduction),循环不变 量移动(loop-invariant code motion)和公共子表达式消除(common subexpression elimination)。优化器最好是与语言和机器都无关的。 ●后端把中间代码转换为针对特定机器的目标代码。这个转换过程又称为 代码生成,也需要几遍扫描才能完成。这几遍扫描包括指令选择 (instruction selection),指令调度(instruction scheduling), 寄存器分配(register allocation)。后端在很大程度上是与语言无关 的,与机器有关的。 这个划分简化了每一个层次的开发和维护,使得在不同的编译器中复用每个层次成为可能。例如,一个完全与机器无关的FORTRAN语言前端可以用到为不同机器设计的编译器中。 当然,这还是一个理想的观点。在实际中,每个层次都表现出既与语言相关又与机器相关。这些相关限制复用和维护,也成为编译器设计人员努力要克服的难关。 (二)优化和寄存器分配 寄存器是位于CPU内部的少量的高速存储器。寄存器与内存有很大的不同: ●寄存器很少。一个寄存器可以用几个比特直接定位。内存空间很大。内 存的定位一般是通过间接的“寻址方式”,其中可能包含一个或多个对寄

ATPCS中寄存器使用

ATPCS中各寄存器的使用规则及其名称 参数传递规则 1. 参数不超过4个时,可以使用寄存器R0~R3来传递参数,当参数超过4个时,还可 以使用数据栈来传递参数。 2. 结果为一个32位整数时,可以通过寄存器R0返回 3. 结果为一个64位整数时,可以通过寄存器R0和R1返回,依次类推。 汇编程序、C程序及C++程序相互调用 C 程序调用汇编程序: ?汇编程序的设置要遵循ATPCS 规则,保证程序调用时参数的正确传递。 ?在汇编程序中使用EXPORT 伪指令声明本子程序,使其它程序可以调用此子程序。 ?在C 语言程序中使用extern 关键字声明外部函数(声明要调用的汇编子程序),即可调用此汇编子程序。 ?调用汇编的C 函数: ?示例 #include extern void strcopy(char *d,const char *s) //声明外部函数,即要调用的汇编 //子程序 int main(void) { const cha r *srcstr=“First string-source”;//定义字符串常量 char dstsrt[] =“Second string-destination”;//定义字符串变量 printf(“Before copying:\n”); printf(“?%s?\n …%s\n,”srcstr,dststr); //显示源字符串和目标字符串的内容strcopy(dststr,srcstr); //调用汇编子程序,R0=dststr,R1=srcstr printf(“Aft er copying:\n”) printf(“?%s?\n …%s\n,”srcstr,dststr); //显示strcopy 复制字符串结果 return(0);

模糊控制器的设计

模糊控制器的设计 一、 PID 控制器的设计 我们选定的被控对象的开环传递函数为3 27 ()(1)(3)G s s s = ++,采用经典的PID 控 制方法设计控制器时,由于被控对象为零型系统,因此我们必须加入积分环节保证其稳态误差为0。 首先,我们搭建simulink 模型,如图1。 图1simulink 仿真模型 由于不知道Kp ,Kd ,Ki ,的值的大致范围,我们采用signal constraints 模块进行自整定,输入要求的指标,找到一组Kp ,Kd ,Ki 的参数值,然后在其基础上根据经验进行调整。当选定Kp=2,Kd=,Ki=时,可以得到比较好的响应曲线。调节时间较短,同时超调量很小。响应曲线如图2所示。 图2 PID 控制响应曲线

将数据输出到工作空间,调节时间ts =,超调量%0σ=。可以看出,PID 控制器的调节作用已经相当好。 模糊控制器的设计 1、模糊控制器的结构为: 图3 模糊控制器的结构 2、控制参数模糊化 控制系统的输入为偏差e 和偏差的变化率ec ,输出为控制信号u 。首先对他们进行模糊化处理。 量化因子的计算max min ** max min x x k x x -= - 比例因子的计算**max min max min u u k u u -=- 其中,*max x ,* min x 为输入信号实际变化范围的最大最小值;max x ,min x 为输入信号论域的最大最小值。*max u ,*min u 为控制输出信号实际变化范围的最大最小值, max u ,min u 输出信号论域的最大最小值。 被控变量 基本论域 论域 量化/比例因子 e [-1,1] {-3,-2,-1,0,1,2,3} 3e k = ec [-1,1] {-3,-2,-1,0,1,2,3} 3ec k = u [-2,2] {-6,-4,-2,0,2,4,6} 1/3u k = 相应的语言值为NB ,NM ,NS ,ZO ,PS ,PM ,PB 。分别表示负大、负中、负小、零、正小、正中、正大。 3、确定各模糊变量的隶属函数类型 语言值的隶属度函数就是语言值的语义规则,可分为连续式隶属度函数和离散化的隶属度函数。本系统论域进行了离散化处理,所以选用离散量化的隶属度函数。

分簇结构向量寄存器分配策略研究

10 M i c r o c o n t r o l l e r s&E m b e d d e dS y s t e m s 2017年第7期w w w .m e s n e t .c o m .c n 分簇结构向量寄存器分配策略研究* 王向前,王昊 (中国电子科技集团公司第三十八研究所,合肥230088 )*基金项目: 国家 核心电子器件二高端通用芯片及基础软件产品 重大专项 面向先进雷达的高性能D S P (N o .2012Z X 010******** )资助三摘要:通过分簇结构实现向量化执行是一种高效而灵活的体系结构选择三在编译中间表示里,向量指令与标量指令交叠出现三分簇结构向量化实现的特殊方式给传统的寄存器分配框架带来了挑战三针对该问题,本文从向量指令的表示形式二C a l l e e /C a l l e r 寄存器划分二向量寄存器分配等进行研究,并给出全局与局部向量寄存器的分配方法三关键词:分簇结构;向量寄存器分配;C a l l e e /C a l l e r 中图分类号:T P 314 文献标识码:A R e s e a r c ho nV e c t o r R e g i s t e r A l l o c a t i o nM e t h o d f o rC l u s t e r i n g W a n g X i a n g q i a n ,W a n g H a o (N o .38R e s e a r c h I n s t i t u d e ,C h i n aE l e c t r o n i c sT e c h n o l o g y G r o u p C o r p o r a t i o n ,H e f e i 230088,C h i n a )A b s t r a c t :I t i s a n e f f i c i e n t a n d f l e x i b l e a r c h i t e c t u r e c h o i c e t o r e a l i z e S I M De x e c u t i o n t h r o u g h c l u s t e r i n g s t r u c t u r e .A n d t h e n t h e v e c t o r i n -s t r u c t i o n s p r o b a b l y c o m eo u t t o g e t h e rw i t ht h es c a l a r i n s t r u c t i o n s i nt h e i n t e r m e d i a t er e p r e s e n t a t i o no f c o m p i l e r .T h es p e c i a lw a y f o r S I M D i m p e m e n t a t i o no n c l u s t e r i n g s t r u c t u r eb r i n g s c h a l l e n g e s t o t h e t r a d i t i o n a l r e g i s t e r a l l o c a t i o n f r a m e w o r k .T os o l v e t h e p r o b l e m ,i n t h e p a p e r ,t h e r e p r e s e n t a t i o n s t y l e o f t h e v e c t o r i n s t r u c t i o n s ,t h e p a r t i t i o n o f C a l l e e /C a l l e r r e g i s t e r ,t h e v e c t o r r e g i s t e r a l l o c a t i o n a r e s t u d -i e d ,a n d t h e g l o b a l a n d l o c a l v e c t o r r e g i s t e r a l l o c a t i o nm e t h o d s a r e p r o p o s e d .K e y w o r d s :c l u s t i n g s t r u c t u r e ;v e c t o r r e g i s t e r a l l o c a t i o n ;C a l l e e /C a l l e r 引 言 分簇结构[1-2] 是一种可以有效增强体系结构并行性而 不会引起昂贵硬件代价的体系结构三分簇结构上向量化机制实现较为特殊,通过多个簇的组合实现高效而灵活的向量化执行三 本文针对分簇结构上向量化实现的特殊本质,研究向量化的表示形式以及在传统寄存器分配框架上实现分簇结构向量寄存器分配的方法三 1 向量指令编译后端表示 编译器后端中间语言一般为一种基于目标机指令的中间语言表示,在进入代码生成阶段时由高级中间语言生成三指令注释二寄存器分配二指令调度都运行在该中间语言上三后端层次结构通过控制流结构表示;控制流结构由若干基本块组成;基本块包括若干操作指令;操作指令主要由操作码二源操作数二目的操作数组成三 分簇结构上向量指令是通过多簇组合支持的,并不像 传统的向量指令,如表1所列,分簇结构分为x 二y 二z 二t 四个簇,每个簇相同物理编号的寄存器组成向量寄存器三例如向量寄存器x y z t R 7表示128位向量寄存器,其中分别由x 簇上的R 7寄存器二y 簇上R 7寄存器二z 簇上R 7寄存器二t 簇上R 7寄存器组合而成;而表1中向量寄存器x y z -t R 7:6则为256位向量寄存器,其中分别由x 簇上的R 7 /R 6寄存器二y 簇上R 7/R 6寄存器二z 簇上R 7/R 6寄存器二t 簇上R 7/R 6寄存器组合而成三这种向量指令的源操作数和目的操作数实际上是通过x 二y 二z 二t 四个簇上的寄存器文件组合而成,和传统的单个向量寄存器有本质区别三基于此,向量指令的后端表示有两个思路:一是分布表示方法,二是整体表示法三如表2所列,表中分簇结构也为x 二y 二z 二t 四个簇三表1 分簇结构上向量指令举例 指 令 含 义 x y z t R 7:6=[U m+U n ,1]从内存起始地址U m+U n 依次读取8 个数据 x y z t R 9:8=R 7:6+R 5:4四个簇上同时执行R 9:8=R 7:6+R 5:4 [U m+U n ,1]=x y z t R 9:8往内存起始地址U m+U n 依次写入8个数据 万方数据

单片机各寄存器汇总

符号 地址功能介绍 B F0H B寄存器 ACC E0H 累加器 PSW D0H 程序状态字 IP B8H 中断优先级控制寄存器 P3 B0H P3口锁存器 IE A8H 中断允许控制寄存器 P2 A0H P2口锁存器 SBUF 99H 串行口锁存器 SCON 98H 串行口控制寄存器 P1 90H P1口锁存器 TH1 8DH 定时器/计数器1(高8位)TH0 8CH 定时器/计数器1(低8位)TL1 8BH 定时器/计数器0(高8位)TL0 8AH 定时器/计数器0(低8位) TMOD 89H 定时器/计数器方式控制寄存器 TCON 88H 定时器/计数器控制寄存器 DPTR 82H 83H 83H数据地址指针(高8位) PC SP 81H 堆栈指针 P0 80H P0口锁存器 PCON 87H 电源控制寄存器 、PSW-----程序状态字。 D7D6D5D4D3D2D1D0 CY AC F0 RS1 RS0 OV P 下面我们逐一介绍各位的用途 CY:进位标志。 AC:辅助进、借位(高半字节与低半字节间的进、借位)。 F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。 RS1、RS0:工作寄存器组选择位。这个我们已知了。 0V:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢出我们后面的章节会讲到。

P :奇偶校验位:它用来表示ALU 运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。 运算结果有奇数个1,P =1;运算结果有偶数个1,P =0。 例:某运算结果是78H (01111000),显然1的个数为偶数,所以P=0。 定时/计数器寄存器 1.工作方式寄存器TMOD(P134) TMOD 为T0.T1的工作方式寄存器,其各位的格式如下:TMOD D7 D6 D 5 D4 D3 D2 D1 D0 GATE C/-T M1 M0 GATE C/-T M1 M0 定时器1 定时器0 位7 GATE ——T1的门控位。 当GATE=0时,只要控制TR1置1,即可启动定时器T1开始工作; 当GATE=1时,除需要将TR1置1外,还要使INT1引脚为高电平,才能启动相应的定时器开始工作。 位6 C/—T ——T1的功能选择位。 当C/—T=0时,T1为定时器方式; 当C/—T=0时,T1为计数器方式; 位5和位4 M1和M0——T1的方式选择位。 由这两位的组合可以定义T1的3种工作方式 定时器T1工作方式选择表 如右表: 位3 GATE ——T0的门控位。 当GATE=0时,只要控制TR0置1,即可启动定时器T0开始工作; 当GATE=1时,除需要将TR0置1外,还要使INT0引脚为高电平,才能启动相应的定时器开始工作。 位2 C/T ——T1的功能选择位。 当C/—T=0时,T0为定时器方式; 当C/—T=0时,T0为计数器方式; 位1和位0 M1和M0—T0的方式选择位。 由这两位的组合可以定义T1的3种工作方式 定时器T0工作方式选择表 TMOD 不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半节定义定时器0,高半字节定义定时器1。复位时,TMOD 所有位均为0,定时器处于停止工作状态。 定时/计数器控制寄存器中断请求标志寄存器TCON(P183) TCON 的作用是控制定时器的启/停,标志定时器的溢出和中断情况。定时器控制寄存器TCON 各位格式如下:TCON(88H) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 当有中断源发出请求时,有硬件将相应的中断标志位置 1.在中断请求被响应前,相应中断标志位被锁存在特殊功能寄存器TCON 或SCON 中。 TCON 为定时器T0和T1的控制寄存器,同时也锁住T0和T1的溢出中断标志及外部中断——INT0和— M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式 2 自动再装入8位计数器 1 1 方式3 定时器1:停止计数 M1 M0 工作方式 功能描述 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式 2 自动再装入8位计数器 1 1 方式3 定时器0:分成2个8位计数器

实验 系统 PID 控制器设计及其相应参数整定集合供参考

实验五 系统 PID 控制器设计及其参数整定 一、实验目的 (1) 掌握 PID 控制规律及控制器实现。 (2) 对给定系统合理地设计 PID 控制器。 (3) 掌握对给定控制系统进行 PID 控制器参数在线实验工程整定的方法。 二、实验原理 在串联校正中,比例控制可提高系统开环增益,减小系统稳态误差,提高系统的控制 精度,但会降低系统的相对稳定性,甚至可能造成系统闭环系统不稳定;积分控制可以提 高系统的型别(无差度),有利于提高系统稳态性能,但积分控制增加了一个位于原点的 开环极点。使信号产生 90°的相位滞后,于系统的稳定不利,故不宜采用单一的积分控制 器;微分控制规律能反映输入信号的变化趋势,产生有效的早期修正信号,以增加系统的 阻尼程度,从而改善系统的稳定性,但微分控制增加了一个-1/τ 的开环零点,使系统的相 角裕度提高,因此有助于系统稳态性能的改善。 在串联校正中,PI 控制器增加了一个位于原点的开环极点,同时也增加了一个位于 s 左半平面的开环零点。位于原点的开环极点可以提高系统的型别(无差度),减小稳态误 差,有利于提高系统稳态性能;负的开环零点可以减小系统的阻尼,缓和 PI 极点对系统产 生的不利影响。只要积分时间常数 T i 足够大,PI 控制器对系统的不利影响可大为减小。PI 控制器主要用来改善控制系统的稳态性能。 在串联校正中,PID 控制器增加了一个位于原点的开环极点,和两个位于 s 左半平面 的开环零点。除了具有 PI 控制器的优点外,还多了一个负实零点,动态性能比 PI 更具有 优越性。通常应使积分发生在低频段,以提高系统的稳态性能,而使微分发生在中频段, 以改善系统的动态性能。 PID 控制器传递函数为 G e (s )=K p (1+1/T i s +T d s ),注意工程 PID 控制器仪表中比 例参数整定常用比例度 δ%,δ% =1/K p *100%. 三、实验内容 (1)Ziegler-Nichols ——反应曲线法 反应曲线法适用于对象传递函数可以近似为 e -Ls 的场合。先测出系统处于开环状态 下 的对象动态特性(即先输入阶跃信号,测得控制对象输出的阶跃响应曲线),如图 6-25 所 示,然后根据动态特性估算出对象特性参数,控制对象的增益 K 、等效滞后时间 L 和等效 时间常数 T ,然后根据表 5-4 中的经验值选取控制器参数。 图 5-1 控制对象开环动态特性 表 5-1反应曲线法 PID 控制器参数整定 控制器类型 比例度 δ% 比例系数 K p 积分时间 T i 微分时间 T d P KL/T T/KL ∞ 0 PI 1.1KL/T 0.9T/KL L/0.3 0 PID 0.85KL/T 1.2T/KL 2L 0.5L 【范例 5-1】已知控制对象的传递函数模型为: G(s)= ) 5)(3)(1(10 +++s s s

西门子s7-200常用寄存器使用基础知识

西门子s7-200常用寄存器使用基础知识 1、S7-200将1个字长(16位)数字值按比例转换为电流或电压。可以用区域标识符(AQ)、数据长度(W)及字节的起始地址来改变这些值。因为模拟量为1个字长,且从偶数字节(如0、 2、4)开始,所以必须用偶数字节地址(如AQW0、AQW2、AQW4)来改变这些值。模拟量输出值为只写数据。模拟量转换的实际精度是12位。格式:AQW[起始字节地址]。例如:AQW4 2、在S7-200 CPU中,计数器用于累计从输入端或内部元件送来的脉冲数。它有增计数器、减计数器及增/减计数器3种类型。由于计数器频率扫描周期的限制,当需要对高频信号计数时可以用高频计数器(HSC)。 计数器有以下两种寻址形式。 当前值寻址:16位有符号整数,存储累计脉冲数。 计数器位寻址:根据当前值和预置值的比较结果置位或者复位。同定时器一样,两种寻址方式使用同样的格式,即C+计数器编号。例如:C0 (1)每个高速计数器都有一个32位当前值和一个32位预置值,当前值和预设值均为带符号的整数值。要设置高速计数器的新当前值和新预置值,必须设置控制字节(表6-7),令其第五位和第六位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储区。然后执行HSC指令,将新数值传输到高速计数器。当前值和预置值占用的特殊内部标志位存储区如表1所示。 表1 HSC0-HSC5当前值和预置值占用的特殊内部标志位存储区 除控制字节以及新预设值和当前值保持字节外,还可以使用数据类型HC(高速计数器当前值)加计数器号码(0、1、2、3、4或5)读取每台高速计数器的当前值。因此,读取操作可直接读取当前值,但只有用上述HSC指令才能执行写入操作。 (2)执行HDEF指令之前,必须将高速计数器控制字节的位设置成需要的状态,否则将采用默认设置。默认设置为:复位和起动输入高电平有效,正交计数速率选择4×模式。执行HDEF指令后,就不能再改变计数器的设置,除非CPU进入停止模式。

控制寄存器和系统地址寄存器

二.控制寄存器和系统地址寄存器 80386控制寄存器和系统地址寄存器如下表所示。它们用于控制工作方式,控制分段管理机制及分页管理机制的实施。 控制寄存器CRx BIT31 BIT30—BIT12 BIT11—BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 CR0 PG 0000000000000000 ET TS EM MP PE CR1 保留 CR2 页故障线性地址 CR3 页目录表物理页码000000000000 BIT47—BIT16 BIT15—BIT0 全局描述符表寄存器GDTR 基地址界限中断描述符表寄存器IDTR 基地址界限 BIT15—BIT0 局部描述符表寄存器LDTR 选择子 任务状态段寄存器TR 选择子BIT31—BIT0 BIT31—BIT0 BIT11—BIT0 基地址界限属性 基地址界限属性 <一>控制寄存器 从上表可见,80386有四个32位的控制寄存器,分别命名位CR0、CR1、CR2和CR3。但CR1被保留,供今后开发的处理器使用,在80386中不能使用CR1,否则会引起无效指令操作异常。CR0包括指示处理器工作方式的控制位,包含启用和禁止分页管理机制的控制位,包含控制浮点协处理器操作的控制位。CR2及CR3由分页管理机制使用。CR0中的位5—位30及CR3中的位0至位11是保留位,这些位不能是随意值,必须为0。 控制寄存器CR0的低16位等同于80286的机器状态字MSW。 1.保护控制位 控制寄存器CR0中的位0用PE标记,位31用PG标记,这两个位控制分段和分页管理机制的操作,所以把它们称为保护控制位。PE控制分段管理机制。PE=0,处理器运行于实模式;PE=1,处理器运行于保护方式。PG控制分页管理机制。PG=0,禁用分页管理机制,此时分段管理机制产生的线性地址直接作为物理地址使用;PG=1,启用分页管理机制,此时线性地址经分页管理机制转换位物理地址。关于分页管理机制的具体介绍在后面的文章中进行。 下表列出了通过使用PE和PG位选择的处理器工作方式。由于只有在保护方式下才可启用分页机制,所以尽管两个位分别为0和1共可以有四种组合,但只有三种组合方式有效。PE=0且PG=1是无效组合,因此,用PG为1且PE为0的值装入CR0寄存器将引起通用保护异常。 需要注意的是,PG位的改变将使系统启用或禁用分页机制,因而只有当所执行的程序的代码和至少有一部分数据在线性地址空间和物理地址空间具有相同的地址的情况下,才能改变PG位。

实验三 PID控制器设计及其参数整定---已完成

实验三 PID 控制器设计及其参数整定 一、实验目的 1) 通过本实验,掌握使用Simulink 仿真设计连续和离散PID 控制器的方法。 2) 掌握对给定控制系统进行PID 控制器参数在线实验工程整定的方法。 二、实验原理 PID 控制是最经典、应用最广泛的控制方法,是单回路控制系统主要的控制方法,是其他控制思想的基础。本实验针对被控对象,选定控制器的调节规律,在控制器的调节规律已经确定的情况下,控制系统的品质主要决定于控制器参数的整定。 1. 连续PID 控制器 本实验采用的PID 控制器传递函数为: 111()(1)(1)C p d d i i G s K T S T S T S T S δ=+ +=++ 或写成: ()i C p d K G s K K S S =+ + 有 ,p i d p d i K K K K T T = = 其中K p 、K i 、K d 分别为比例系数、积分系数和微分系数;T i 、T d 分别为积分时间常数和微分时间常数;δ为比例度。 控制系统的Simulink 仿真图如图1所示。连续PID 控制器如图2所示。 根据不同的参数设置,可以得到单纯的比例控制、比例积分控制、比例微分控制以及比例积分微分控制等不同的控制系统。 控制器参数的工程整定实验法,是通过对典型输入响应曲线所得到的特征量,按照动态特性参数法、衰减曲线法、临界比例度法、或经验法中的某一种方法,求得控制器的各个参数,进行工程整定,使系统的性能达到最佳。

图1 控制系统Simulink 仿真图 图2 连续PID 控制器Simulink 仿真图 2. 离散PID 控制器 将描述模拟PID 控制器的微分方程式化为差分方程,即为数字PID 控制算法。 1 ()(1) ()()()k p i d i e k e k u k K e k K T e i K T =--=++∑ 因为上式包含的数字积分项,需要存储过去全部偏差量,而且累加运算编程不太方便,计算量也较大,所以在应用中,通常都是将上式改为增量算法。 ()()(1) ()2(1)(2)[()(1)]()p I D u k u k u k e k e k e k K e k e k K Te k K T ?=----+-=--++ 即 ()(1)()u k u k u k =-+?

相关文档