基于dsp的直流电机调速课程设计报告内容摘要:

8 字节: 2 个接收邮箱,2个发送邮箱;  可编程的位定时器;  对邮箱0、 1 和 3 有局域接收屏蔽寄存器;  中断配置可编程;  可编程的 CAN 总线唤醒功能;  自动回复远程请求;  当 发送时出现错误或仲裁时丢失数据, CAN 控制器有自动重发送功能; 浙江理工大学 信息电子学院 07 电子信息工程 1 班 叶海莉  总线错误诊断功能;  自测试模式。 CAN 控制器在自测试模式下,接收邮箱收 CAN 自身的发送邮箱发送的信息帧,并产生自应答信号。 CAN 控制器必须通过 CAN驱动芯片才能与其他的 CAN 控制器进行通信。 CAN 模块是一个 16位的外设,对它的访问分成控制 /状态寄存器的访问和邮箱的 RAM访问。 邮箱位于一个 48*16 位的 RAM 中,它可被 CPU 或 CAN 模块读/写。 CAN 读 /写访问和 CPU 读访问需要一个时钟周期,而CPU 的写访问需要两个时钟周期。 在这两个时钟周期里, CAN 完成读 修改 写循环,因此 CPU 插入一个等待状态。 当访问 RAM 时,地址总线的第 0 位用来决定取 32 位的低 16 位字(地址总线的第 0 位为 0)还是高 16 位字(地址总线的第 0 位为1)。 RAM 的位置由地址总线的第 1 位到第 5 位决定。 四 硬件设计 硬件实现电路原理图及各模块功能简介 硬件电路图 浙江理工大学 信息电子学院 07 电子信息工程 1 班 叶海莉 各模块功能简介 模块一: 光耦首先其隔离作用(电气隔离),另外也起着滤除信号中毛刺的作用。 本课程设计中,主要通过引脚 J81 和 J85 两个管脚输入PWM 波,这两个引脚分别引到光 耦的发光二极管的负极,当输入的PWM 波为低电平时,光耦中的发光二极管导通,从而通过光耦的作用使二极管导通,将三极管集电极处的电平拉低,集电极出来的引脚引到 L298 的 IN1 和 IN2 两个引脚,从而使得 PWM 波的低电平的耦合过去;同样, PWM 波的高电平也是同样的道理,不再详述,这就是光耦的作用。 模块二: L298 驱动芯片,作用:通过光耦耦合过来的 PWM 波输入到L298 的 IN1 和 IN2 引脚,因为光耦耦合过来的信号比较弱,不足以驱动电机,所以需要 L298 来驱动电机, L298 用光耦输入的 PWMboiling来驱动电机工 作。 (详细功能实现原理以上“ L298N 的工作原理”已经叙述 .) 模块三: H 桥。 作用:通过 H 桥不同的桥臂的轮流导通,可以控制电机的正反转。 其他硬件部分作用: 电容起滤波作用。 电阻根据光耦工作手册中的电流典型值,所以选取了图中所示阻值。 浙江理工大学 信息电子学院 07 电子信息工程 1 班 叶海莉 硬件调试波形记录 初始输入图像 浙江理工大学 信息电子学院 07 电子信息工程 1 班 叶海莉 电机处图像 光耦处图像 浙江理工大学 信息电子学院 07 电子信息工程 1 班 叶海莉 五 部分程序 CAN 发送程序 include //引用头部文件 int CAN_FLAG。 //定义标志寄存器 void system_init()。 //声明在程序中需要用到是函数 void CANMBX_ISR()。 void CAN_INIT()。 void inline disable() { asm( setc INTM)。 } void inline enable() { asm( clrc INTM)。 } //(1)主程序 main() { system_init()。 //系统初始化子程序 CAN_FLAG=0x00。 //清 CAN 用户标志 ,CAN_FLAG=0 表示收到数据 CAN_INIT()。 //CAN 初始化子程序 enable()。 for(。 ) { //Counter=Counter+1。 TCR=0x20。 //MBX3 请求发送 while(TCRamp。 0x2020==0) //等待发送应答 continue。 TCR=0x2020。 //清 TA3 和 MIF3 标志位 //while(CAN_FLAG==0) // continue。 //等待接收数据 CAN_FLAG=0x0000。 //清接收到标志 MDER=0x0000。 //邮箱不使能 MCR=0x0140。 //CDR=1,数据改变请求 MBX3A=MBX2A。 //邮箱 3 中数据加 1 用来更新 2 中的数据 MBX3B=MBX2B。 MBX3C=MBX2C。 MBX3D=MBX2D。 MCR=0x0480。 //DB0=1,AB0=1,STM=1 设置为自测试模式 MDER=0x04C。 浙江理工大学 信息电子学院 07 电子信息工程 1 班 叶海莉 } } //(2) 系统初始化子程序 void system_init() { asm( setc SXM)。 // 抑制符号位扩展 asm( clrc OVM)。 // 累加器中结果正常溢出 asm( clrc CNF)。 // B0 被配置为数据存储空间 asm( setc INTM)。 // 禁止所有中断 SCSR1=0x81FE。 // CLKIN=6M, CLKOUT=4CLKIN=24M WDCR=0x0E8。 // 不使能看门狗,因为 SCSR2 中的WDOVERRIDE // 即 WD 复位后的缺省值 ,故可以用 // 软件禁止看门狗 IMR=0x0010。 // 开中断优先级 5 IFR=0x0FFFF。 // 清除全部中断标志, 写 1 清 0 } //(3)CAN 初始化子程序 void CAN_INIT() { MCRB=MCRB|0x0C0。 //设置 IOPC IOPC7 为 CANRX, CANTX CAN_IFR=0x0FFFF。 //清所有中断标志 LAM1_H=0x7FFF。 //设置邮箱 2 的屏蔽 ID 寄存器 LAM1_L=0x0FFFF。 //0 则 ID 必须匹配 MCR=0x1000。 //CCR=1 改变配置请。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。