《电机控制的DSP程序设计及CAN基础知识ppt课件.ppt》由会员分享,可在线阅读,更多相关《电机控制的DSP程序设计及CAN基础知识ppt课件.ppt(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、电机控制的电机控制的DSPDSP程序设计及程序设计及CANCAN基础知识基础知识 姓 名:叶振锋 时 间:2009年3月26日 公 司:上海电驱动有限公司主要内容概述概述 DSPDSP芯片简介芯片简介电机控制系统结构图电机控制系统结构图电机控制系统程序需求分析电机控制系统程序需求分析电机控制系统动态结构图电机控制系统动态结构图电机控制系统程序流程图电机控制系统程序流程图电机控制系统程序设计电机控制系统程序设计子程序模块设计说明子程序模块设计说明软件设计与调试注意事项软件设计与调试注意事项CANCAN基础知识基础知识概概 述述1.1.电机控制技术的实现方案电机控制技术的实现方案(1).传统模拟控
2、制(2).微控制器(MCU)控制(3).数字信号处理器(DSP)控制概概 述述2.DSP2.DSP实现的实现的PMSMPMSM控制系统结构图控制系统结构图概概 述述3.DSP3.DSP实现的电机控制系统特点实现的电机控制系统特点(1).DSP的高速计算能力,可以完成复杂的信号处理和控制算法,提高采 样频率,控制电力电子外围设备,在此基础上可实现电机的高性能控 制。(2).电机控制专用DSP丰富的外围功能模块,为电机控制带来了许多的便 利。如PWM模块,可产生高分辨率的PWM波形,灵活的产生方式可减小 EMI和噪音问题,多路PWM输出可以进行多电机控制。(3).丰富的第三方软硬件资源和开发工具可
3、大大简化系统开发过程概概 述述4.DSP4.DSP技术在电机控制的应用情况技术在电机控制的应用情况常用交流电机控制系统有如下几种:(1).异步电机(2).电励磁同步电机 隐极同步机;凸极同步机(3).永磁电机 永磁无刷直流电动机;永磁同步电动机(4).其他特种电机 开关磁阻电机;步进电机概概 述述5.5.主要相关技术发展情况主要相关技术发展情况(1).半导体功率器件 小型化、智能化、高频化、高效化。(2).数字信号处理器DSP 外围功能、数据处理能力、存储器容量等发展迅速,为电机控 制系统的高性能化、智能化提供了基础。(3).电机控制理论 电机控制策略、状态观测器、滤波器、自适应控制、无传感器
4、控制、PWM 调制方法、死区补偿等技术的应用大大提高了电机控制系统的性能和可 靠性。概概 述述6.6.电机控制理论控制策略的发展电机控制理论控制策略的发展 张博士的讲座中已做了非常详细的说明了。概概 述述7.7.先修课程先修课程 模拟电路 数字电路 微机原理 单片机 自动控制原理 电力电子器件 电机拖动 DSP芯片简介1.TMS320LF2407A1.TMS320LF2407A的特征的特征CMOS技术,3.3V供电,最快指令周期25ns,最大主频40MHZ。和TMS320系列DSP代码兼容。片内程序存储器32K Flash、544字的双口RAM、2K字的单口RAM两个事件管理模块EVA、EVB
5、可扩展的外部存储器:192K字看门狗定时器模块(WDT)10位 A/D转换器最小转换时间500ns控制器局域网络(CAN)2.0B模块。串行通信接口(SCI)16位串行外设接口模块(SPI)基于锁相环的时钟发生器40个 I/O口5个外部中断DSPDSP芯片简介芯片简介2.DSP2.DSP的性能的性能DSP性能公式:CPU时间 = CPI IC / 时钟频率 三个参数反映了与体系结构相关的三种技术。(1).时钟频率反映了DSP实现技术、生产工艺和计算机组织。 (2).CPI是指令时钟数,反映了DSP实现技术、计算机指令集的结构和计 算机组织。 (3).IC是程序执行过程中所处理的指令数,反映了D
6、SP指令集的结构和编 译术。 从目前情况来看,提高某一个参数指标,不会明显地影响其它两个指标。这对于综合运用各种技术改进计算机系统的性能是非常有益的。电机控制系统结构框图电机控制系统结构框图本电机控制系统采用单DSP系统的架构,结构框图如下图所示。控制系统程序需求分析控制系统程序需求分析1.1.控制对象及输入输出量控制对象及输入输出量1.1.1.1.控制对象控制对象永磁电机1.2.1.2.输入量输入量直流母线电流、直流母线电压、A相电流、C相电流、电机温度、逆变器温度、电机转子位置信号1.3.1.3.输出量输出量六路PWM信号、故障信号2.2.资源需求资源需求I/O口、AD采样端口、芯片存储器
7、容量等等电机控制系统程序需求分析电机控制系统程序需求分析3.3.时钟频率时钟频率晶振、系统时钟、外围时钟、PWM频率等 4.ADAD采样精度分析采样精度分析 结合硬件进行分析5.5.通信说明通信说明通信方式、通信目的。还包含波特率、数据格式等其它说明 电机控制系统结构图电机控制系统结构图电机控制系统程序流程图电机控制系统程序流程图1.1.主程序主程序 流程图流程图电机控制系统程序流程图电机控制系统程序流程图2.AD2.AD中断程中断程 序流程图序流程图电机控制系统程序设计1.1.程序设计开始的一些约定程序设计开始的一些约定1.1.1.1.电动车电机控制系统程序文件组成电动车电机控制系统程序文件
8、组成 头文件、CMD文件、表文件、ASM程序文件等等 1.2.1.2.程序名及变量名命名程序名及变量名命名 程序名及变量名命名采用通俗易懂的英文组合进行命名。(1).常量命名 常量命名最后加Cnst,例如: UdcMaxCnst 过压常量值 SpeedOverCnst超速常量值(2).标志量命名 标志量命名最后加Fby,例如: PowerOffFby断电标志 FaultFby 故障标志电机控制系统程序设计(3).变量命名 命名最后加Dby,例如: SpeedSetDby转速给定变量 MotorRunStatusDby 电机运行状态变量(4).函数命名 函数命名最后加Sub,例如: SpeedC
9、omputeSub速度计算程序命名 ADCIntSub 中断程序命名 DSPInitSub 芯片初始化命名1.3.1.3.程序注释程序注释 电机控制系统程序名称、公司名称、书写时间、作者、版本号、原 代码关键注释。如果程序要更改必须要写明更改原因、时间、作者 等。电机控制系统程序设计 本电机控制系统软件采用模块化、自顶向下、逐步细化的结构化程序设计方法。2.2.系统初始化程序设计系统初始化程序设计(1).系统时钟设置、系统外设时钟设置、配置RAM块、设置数据页指针、 AD中断模式、IO模式、等待状态设置、PWM模块设置、CAN模块设 置、定时器模块设置程序。(2).系统程序变量初始化程序。(3
10、).AD采样偏移量读取及处理程序。(4).系统程序延时程序。(5).获取电机转子的初始位置程序。电机控制系统程序设计3.CAN3.CAN通信程序设计通信程序设计3.1.CAN3.1.CAN通信协议确认通信协议确认 (1).标准帧、扩展帧确认。 (2).通信周期确认。 (3).通信波特率确认。 (4).数据格式确认,英特格式还是摩托罗拉数据格式。电机控制系统程序设计3.2.CAN3.2.CAN初始化程序设计初始化程序设计工作方式的设置、接收滤波方式的设置、 接收屏蔽寄存器和接收代码寄存器的设置、波特率参数的设置和中断允许寄存器的设置等。CanInitSub对模式进行设置,进入复位模式设置时钟分频
11、寄存器,同时选择PeliCAN模式,关闭时钟输出设置中断使能寄存器IER,禁止CAN 中断源产生中断设置接收屏蔽寄存器设置接收代码寄存器(根据具体情况进行设置)总线定时寄存器设置(用于设置CAN通讯速率)设置输出控制寄存器,选择正常输出模式设置接收缓存器起始地址寄存器(相对值,一般为0)设置发送错误计数器,清零设置MODE寄存器,选择单过虑模式,并设置为工作状态设置允许中断寄存器,开放中断Return电机控制系统程序设计3.3.CAN3.3.CAN通信发送程序设计通信发送程序设计在发送部分软件设计中,如果根据状态寄存器的发送状态标志来判断是否可以发送数据,那么当CAN总线出现断路,然后又正常,
12、这时即便进行软件初始化,数据也无法正常发送,原因是该状态标志位无法通过软件进行初始化来进行复位,因此在软件设计时可以不考虑该状态标志位。允 许 发 送 吗 ?YNC a n T x d S u b设 置 发 送 帧 格 式 和 发 送 数 据 长 度( 扩 展 帧 和 8 字 节 数 据 长 度 )正 在 接 收 吗 ?NY发 送 缓 冲 区 是 否 锁定 ?NY设 置 发 送 标 识 码数 据 送 发 送 缓 冲 区启 动 发 送R e tu r n电机控制系统程序设计总 线 开 启 否 ?YNC a n R x d S u bNY有 数 据 溢 出 吗 ?NY接 收 首 字 节读 取 并
13、保 存 接 收缓 冲 区 数 据R e tu rn读 取 中 断 寄 存 器接 收 缓 冲 区 有 有 效报 文 吗 ?是 远 程 帧 吗 ?置 发 送 允 许 标 志释 放 缓 冲 区释 放 仲 裁 丢 失 捕 捉 寄 存器 和 错 误 捕 捉 寄 存 器YN清 数 据 溢 出 ,释 放数 据 缓 冲 区读 中 断 寄 存 器设 置 M O D E 寄 存 器 , 进入 复 位 模 式调 用 报 警 程 序3.4.CAN3.4.CAN通信接收程序设计通信接收程序设计CAN通讯接收部分软件设计主要有两种方式,一种是通过查询方式来接收数据,另外一种是通过中断方式来接收数据,后一种方法对于实时性要
14、求比较高的场合应用较多。电机控制系统程序设计3.5.CAN3.5.CAN程序设计的难点程序设计的难点 (1).根据CAN外设时钟、通信波特率计算BTR0、BTR1寄存器值。 (2).当CAN通信故障时如何来恢复通信。 (3).多数据帧时如何完成程序设计(4个发送数据帧,8个接收数据 帧)。 (4).CAN网络时钟同步。电机控制系统程序设计4.AD4.AD中断程序设计中断程序设计主要完成系统的功能程序。(1).AD采样数据读取及处理子程序(2).系统计时子程序(3).旋变信号读取子程序(4).模块故障检测子程序(5).电机转速计算子程序(6).Clark变换子程序(7).正弦余弦值计算子程序(8
15、).Park变换子程序电机控制系统程序设计(9).系统故障保护子程序(10).交、直轴电流计算子程序(11).交、直轴电流调节子程序(12).系统信号反馈子程序(13).Park逆变换子程序(14).SVPWM子程序子程序模块设计说明子程序模块设计说明1.1.系统信号反馈子程序系统信号反馈子程序 程序名称:SIGNAL_FEEDBK功 能:根据检测电机参数计算电机实际转矩输入变量:IQ;ID;Ld;Lq输出变量:MCTQIS计算公式:)(23qdqdfqnemiiLLipT子程序模块设计说明子程序模块设计说明2.2.速度计算程序速度计算程序 程序名称:SpeedComputeSub 功 能:电
16、机实际转速计算 输入变量:ResolverNewDby 输出变量:SpeedDby,SpeedOverFby 说 明:(1).电机对极数 (2).采用M或T法计算电机转速说明 (3).计算公式,包括参数值说明 (4).电机达到多高转速时进行超速保护软件设计与调试注意事项软件设计与调试注意事项1.1.流水线冲突流水线冲突 TMS320LF2407A是采用4级流水线操作,为取指、译码、取操作数及执 行。发生流水线冲突时,可以通过调整程序语句或在相应位置加一些 NOP指令来解决。2.2.设置等待状态寄存器设置等待状态寄存器 DSP的读操作从地址稳定到数据有效仅需几十个ns时间。当DSP与低速 外设在
17、速度上冲突时,要设计好等待状态寄存器。3.3.保留区域保留区域 程序设计时不能向保留地址写数据,否则将造成处理器的不可预测操 作。软件设计与调试注意事项软件设计与调试注意事项4.4.中断资源中断资源 中断程序结束前要将中断标志清零,否则无法正常相应中断。若某一中 断客观存在,而程序中无相应的中断程序,则会导致程序紊乱。5.AD5.AD采样采样 AD采样的转换时间需要读DSP的数据手册确认。TMS320F240芯片的转换 时间约6us,TMS320LF2407A芯片的转换时间约500ns。6.6.程序调试步骤程序调试步骤 (1).先调试CAN通信程序 (2).数据接收正常后,调试算法部分。 (3
18、).计算结果正常后,调试输出部分。软件设计与调试注意事项软件设计与调试注意事项7.7.程序语法错误程序语法错误7.1.程序设计中的错误(1).语法错误(2).运行错误(3).逻辑错误7.2.语法错误的分类(1).致命错误(2).错误(3).警告8.8.养成良好的编程习惯养成良好的编程习惯 (1).文件的注释(2).语句行与语句块(3).程序代码缩进对齐CANCAN通信的通信的一个实例一个实例1.CAN1.CAN总线网络示意图总线网络示意图CANCAN通信的通信的一个实例一个实例2.CAN2.CAN总线汽车空调节点原理图总线汽车空调节点原理图U9OPTOISO2U10OPTOISO2Q1DTA1
19、14R241KQ2DTA114R251KQ3DTA114R281KVCCGNDLED1LED2LED38910U14C74HC0256U12C74HC14A1B2QA3QB4QC5QD6CLK8CLR9QE10QF11QG12QH13U1374HC16412U12A74HC1434U12B74HC14R3210KVCCRESET564U14B74HC02231U14A74HC02T.SETT.INT.EXCHT.OUTIBUSC21100nFP110KP210KVCCGNDVCCINT0IN026IN127IN228IN31IN42IN53IN64IN75ref(-)16EOC7ref(+)1
20、2D021D120D219D318D48D515D614D717ADD-A25ADD-C23ADD-B24ALE22ENBLE9START6CLOCK10U8ADC0809WRA15RDALERDWR/RESET/INT1R19100KVCCVCCR20100A14Y111.0592MC1220PC1320PGNDR17100ALEINT1A14WRRDA15INT0LED1COMP.FLED2LED3PULSECOMP.FGCOMP.RCOMP.SRESETVCCT2/P1.01T2EX/P1.12P1.23P1.34P1.45P1.56P1.67P1.78RXD/P3.010TXD/P3.
21、111#INT0/P3.212RST9T0/P3.414T1/P3.515X218P2.1/A922X119VSS20VCC40P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.0/A821P2.7/A1528ALE30#INT/P3.313#WR/P3.616P2.6/A1427#RD/P3.717P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326#PSEN29#EA/VPP31U689C58R18100+5R36.8KR43.6KR21390AD
22、023AD124AD225AD326AD427AD528AD61AD72ALE3/CS4/RD5/WR6/RST17/INT16CLKOUT68VSS18VSS221VSS315VDD122VDD218VDD312XTAL210XTAL19RX019RX120TX013TX114MODE11U7SJA1000D51N4148VCCGNDVCCR22390Y211.0592MC1520PC1620PGNDC17100nFVCCVCCC14100nFTXD1GND2VCC3RXD4VREF5CANL6CANH6RS8U11PCA82C250D61N4148R23390VDDR7390C4100nF
23、VDDVDDR924KL5SYJA-2Z36.8VR26120123CN4R276.8C182.2uFD7LEDD8LEDD9LEDCANCAN通信的通信的一个实例一个实例3.CAN3.CAN总线的相关器件总线的相关器件CANCAN总线控制器总线控制器 SJA1000SJA1000CANCAN总线驱动器总线驱动器 82C25082C250、TJA1050TJA1050CANCAN总线控制器集成在总线控制器集成在DSPDSP芯片芯片 TMS320LF2407ATMS320LF2407ADB9DB9接头接头 pin7pin7接接CAN_HCAN_H、pin2pin2接接CAN_LCAN_L、pin
24、5pin5接屏蔽线接屏蔽线高速光耦高速光耦 CANCAN总线基本概念总线基本概念 CAN(Controller Area Network)是一个先进的串行总线系统。1.CAN1.CAN总线电平总线电平隐性位(1:recessive)是被描述为两根CAN总线均由大约2.5V的电平驱动,这样在CAN_H 与CAN_L 之间的差分电压为0V左右。显性位(0:dominant)是被描述为CAN_H上升到大约3.5V, CAN_L降低到大约1.5V。对于一个显性位差分电压的结果为2V左右。CANCAN总线基本概念总线基本概念2.CAN2.CAN总线线与总线线与CANCAN总线基本概念总线基本概念3.CA
25、N3.CAN总线接口标准总线接口标准 高速CAN( CAN High Speed )遵循标准ISO-IS 11898,用于位速率为125kbp到1Mbps之间的高速总线。低速CAN( CAN Low Speed )遵循标准ISO-IS 11519-2,用于位速率在125kbps以下的低速总线。 CANCAN总线基本概念总线基本概念4.4.协议版本协议版本 ( (标准标准/ /扩展扩展) ) V2.0A(标准) 11位消息IDV2.0B(扩展) 29位消息IDCANCAN总线基本概念总线基本概念5.CAN5.CAN总线与总线与EMIEMICAN对于电磁干扰(EMI)不敏感。为了进一步减少CAN对
26、于EMI的敏感性,总线外面使用屏蔽层。这样可以减小总线自身的电磁辐射。CANCAN总线技术特点总线技术特点 CAN总线为多主站总线,各节点可在任意时刻向网络上的其他节点发送信息,不分主从,通信灵活。CAN总线采用独特的非破坏性总线仲裁技术,优先级高的节点优先传送数据,可满足实时性要求。CAN总线具有点对点、一点对多点及全局广播传送数据的功能。CAN总线采用短帧结构,每帧有效字节数最多为8个,数据传输时间短,并有CRC及其他校验措施,数据出错率极低。CAN总线上某一节点出现严重错误时,可自动脱离总线,而总线上的其他操作不受影响。CAN总线系统扩充时,可直接将新节点挂在总线上,因而走线少,系统扩充
27、容易,改型灵活。CAN总线最大传输速率可达1Mb/s(此时通信距离最长为40m),直接通信距离最远可达10km(速率5kbps以下)。CAN总线上的节点数主要取决于总线驱动电路。在标准帧(11位报文标识符)可达110个,而在扩展帧(29位报文标识符)其个数几乎不受限制。总线访问仲裁总线访问仲裁 帧格式帧格式1.1.数据帧数据帧帧起始应答域仲裁域 控制域帧结束数据域CRC域 控制域:CAN2.0A中包括数据长度代码、IDE位(为显性)和保留为r0。CAN2.0B包括数据长度代码和两个保留位r1和r0。其保留位必须发送为显性。数据域:为08个字节,每字节包含8个位。 CRC域:CRC序列,后跟CR
28、C界定符。 应答域:ACK域为2个位,分别是应答间隙(ACK Slot)和应答界定符(ACK Delimiter)。所有接收到匹配CRC序列的站会在ACK间隙期间用1显性位写在发送器的隐性位置上来作出回应;ACK界定符是应答域的第2个位,必须是一个隐形位。 帧结束(EOF):每个数据帧和远程帧都由一标志序列界定,这个标志序列由7个隐性位组成。 帧起始:帧起始标志数据帧和远程帧的起始,它仅由一个显性位组成。 仲裁域:在CAN2.0A中,11标识符和RTR (Remote Transmission Request)位构成;在CAN2.0B中,29位标识符和替代远程请求SRR(Substitute
29、Remote Request)位、标识符扩展位IDE(Identifier Extension)和RTR组成。帧格式帧格式2.2.远程帧远程帧帧起始应答域仲裁域 控制域帧结束CRC域远程帧的RTR位与数据帧相反,为“隐性”。它没有数据域,数据长度代码的数值没有意义(可以为08范围里的任何数值)。 3.3.错误帧错误帧错误帧(Error Frame)由两个不同域构成,第一个域由来自不同节点的错误标志叠加给出,第二个域为错误界定符。 4 4. .超载帧超载帧过载帧包括两个位域:过载标志和过载界定符。 帧格式帧格式5.5.帧间空间帧间空间 帧间空间包括“间歇”、“总线空闲”的位域。如果是发送前一报文
30、的“错误认可”节点,则还包括“挂起传送”的位域。帧间空间帧帧间歇总线空间帧间空间帧帧间歇总线空间挂起传送错误检测错误检测 1.1.循环冗余码校验(循环冗余码校验(CRCCRC)计算出的校验值与接收到的校验值必须一致,否则,消息帧没有被正确接收(CRC Error)。错误检测错误检测错误检测错误检测2 2. .应答应答一个帧必须被一个或几个节点应答,否则会出现应答错误。3.3.帧检测帧检测在CRC分隔符、ACK分隔符、帧结束、帧间隔中不允许出现显性位。否则出现格式错误(Form Error)。4.4.位监测位监测所发送的位必须从总线上正确回读。在仲裁域和应答间隙,隐性位可以被显性位重写。5.5.
31、位填充检查位填充检查在帧起始位与CRC分隔符之间不允许存在6个连续的相同极性的位出现。错误处理错误处理 所检测到的错误是通过错误帧来对所有节点公开的。错误消息的传输会被终止,并尽可能重新发送。消息编码消息编码、位填充、位填充 1.1.消息编码格式消息编码格式NRZ-Code2.2.位填充位填充位填充是为了保证有足够的隐性到显性的跳变沿。填充位出现在5个连续的相同极性的位之后,填充位与其前面的位极性相反。同步同步 硬同步 发生在帧的起始位。 重新同步 发生在每一个隐性到显性的跳变沿。位构建每个位时间分为4个时间段,包括825个时间份额( Time Quantum )。时间份额来源于对晶振频率可编
32、程的分频。CAN波特率可通过编程设置合适的时间份额长度与数量来确定。同步同步段段传播段传播段用于补偿信号传播延时。相位缓冲段相位缓冲段1 1允许通过重新同步对该段时间加长。在这个时间段的末端进行总线状态的采样。长度可编程(1 8个时间份额)。相位缓冲段相位缓冲段2 2允许通过重新同步对该段时间缩短。长度可编程。位延长位延长主要是为了调整采样点,以及位的结束时间。位延长位延长位缩短、同步跳转宽度位缩短、同步跳转宽度位缩短位缩短原理同位延长。同步跳转宽度同步跳转宽度在重新同步中,位长度可调整的时间份额数量定义为同步跳转宽度。重新同步跳转宽度可以在1到4个时间份额间进行设定,但是它不可以比相位缓冲段2还长。CANCAN总线优势总线优势 信息共享 减少线束关联控制CANCAN总线方案总线方案- -方案一方案一 CANCAN总线方案总线方案- -方案二方案二CANCAN总线方案总线方案- -方案三方案三CANCAN总线技术在汽车中应用的关键技术总线技术在汽车中应用的关键技术 1.总线传输信息的速率、容量、优先等级、节点容量等技术问题2.高电磁干扰环境下的可靠数据传输3.确定最大传输时的延时大小4.网络的容错技术5.网络的监控和故障诊断功能6.实时控制网络的时间特性7.安装与维护中的布线8.网络节点的增加与软硬件更新(可扩展性) 谢谢大家谢谢大家!