基于AVR单片机的核磁共振仪床体运动控制与检测系统的研究与设计
大后驱动电机动作。通过接在电机上的编码器的反馈信号和前后极限位置传感器判断床体当前的纵向位置,实现了直流伺服电机的闭环控制。控制电机驱动信号,就可以实现电机的起/停、正/反转和加/减速功能,从而实现床体的简单运动、复杂运动和指定运动状态。伺服电机的驱动是由主控制板发出控制信号,由驱动电路驱动直流伺服电机动作,配以脉冲发生器(编码器)测量电机的转角,经滤波后反馈给单片机,从而构成了电机的闭环控制系统,实现了对直流伺服电机的精确控制。
3.2 AVR单片机固化程序
AVR单片机固化程序采用ICC语言编写,并使用模块化的设计方法,分为主程序、键盘扫描模块、显示模块、运动控制模块、横向运动测试模块、纵向运动测试模块和寿命测试模块。模块化设计使软件更加灵活,便于调用和移植,并且在错误发生的时候,可以很快的找到错误,极大的提高了系统的可靠性和稳定性。
3.2.1 主程序
主程序要完成系统的初始化,中断设置,全局变量设置和看门狗设置等。在初始化结束后,系统进入主查询循环过程,判断当前进行的操作,并进入相应的功能模块。系统程序中采用了状态位的方式,实现主程序和各个功能模块,以及各个功能模块之间的运动状态的通信,保证了在各个功能模块之间切换时,系统的安全和稳定性。系统主程序的流程图如图3所示。
图3 主程序流程图
图4 键盘扫描模块程序流程图
3.2.2 键盘扫描模块
由于对系统响应速度要求不高,所以键盘扫描采用了查询的方式。键盘扫描模块程序流程图如图4所示,纵向运动的优先级大于横向运动的优先级,当纵向按键和横向按键同时按下时,床体将会纵向运动,横向运动按键被屏蔽。
3.2.3 寿命测试模块
寿命测试部分是本系统中结构最复杂,涉及变量最多的一个功能模块,并且同时存在系统状态位和寿命测试状态位变量,所以各个功能模块之间的状态通信也比其他功能模块复杂。在这个模块中,主要实现了床体自动进行复杂运动的功能,并且能够对各种预先设定的循环运动计数,从而实现对床体的寿命测试。
图5 寿命测试模块
3.3 CPLD固化程序
CPLD固化程序采用VHDL语言编写。主要功能为:
①驱动“纵向位置”数码管显示当前纵向位置或寿命测试计数;
②对极限位置传感器的差分信号解码后,输出给MCU;
③接收横向位置信号,并驱动“横向位置”数码管,显示横向位置;
④驱动极限位置指示LED;
4结论
通过在核磁共振仪的床体上进行的实际应用,证明本系统能够完全实现对床体的控制功能,并且满足对床体各种测试的要求,具有较高的稳定可靠性。本系统能够独立对核磁共振仪的床体进行检测,大大降低了生产成本,缩短了生没产周期,具有较高的应用价值。
- 锁相环控制及初始化简析(08-27)
- 基于AVR单片机的串口转FSK的通信模块设计(01-23)
- 基于AVR单片机的服装压力检测系统设计(05-03)
- 基于Atmel AVR单片机的无线图像侦检系统(10-19)
- avr单片机串口多机通讯及实例(12-03)
- AVR单片机入门系列(25)AVR PWM OC0(12-03)