1、基于AVR单片机核磁共振仪床体检测系统 于继铭 张晓冬 (北京交通大学电气工程学院,北京 100044) 摘要:本文简介了由AVR单片机实现核磁共振仪床体检测系统硬件与软件设计,进一步分析和研究了床体横向运动和纵向运动精准控制问题。 核心词:AVR单片机;检测系统;电机控制; Abstract:This paper introduces the hardware and firmware design of the MRI Table JIG by AVR microcomputer control. Also describes the precise control of t
2、able motion on lateral and longitude directions. Key words:AVR MUC;Detection system;Motor control; 1 引言 近年来随着医学技术迅速发展,核磁共振仪已经在大中型医院中被广泛应用。当前,在核磁共振仪生产过程中,床体某些要与磁体一起搬入电磁屏蔽室组装后才干进行检测,这对人员和物资都是很大挥霍。针对这种状况,本文设计出了一套核磁共振仪床体某些运动控制与检测系统,它可以对床体某些独立进行检测,而不必将所有系统在屏蔽室安装后检测,从而减少了核磁共振仪床体某些生产和检测成本,缩短了生产周期。
3、本设计以通用医疗集团Ovation5型核磁共振仪床体为对象,对驱动床体做横向运动直流步进电机和驱动床体做纵向运动直流伺服电机精准控制问题进行较为进一步分析和研究。系统重要采用了ATMEL公司Atmega128单片机和ALTRA公司EPM240T100型CPLD芯片作为主控制某些,实现了对床体纵向和横向运动精准控制和检测。主控电路采用了全数字控制方式和抗干扰设计,具备很高抗干扰性能。 2 检测系统硬件设计 2.1 系统硬件构造 本检测系统重要由主控制板、显示某些、按键开关、传感器、串行通信和电机控制某些构成。床体运动分为横向运动和纵向运动两种状态,分别由直流步进电机和直流伺服电机实现。本系
4、统硬件构造如图1所示。 图1 系统硬件构造示意图 从图1可以看出,电机逻辑控制由主控制板实现。系统通过初始化之后,当开关或按键发出通断信号给主控制板时,由单片机判断床体当前状态,如果床体没有处在极限位置,则单片机向相应电机发出驱动信号,驱动床体向相应方向运动,否则床体停止运动。横向运动采用开环控制,运动位置由单片机发出脉冲个数决定。纵向运动采用闭环控制,由连接在直流伺服电机上编码器反馈位置信号给主控制板。 2.2 主控制板硬件设计 主控制板重要由AVR单片机、CPLD、滤波电路、电平转换电路和串口通信电路等构成。AVR单片机重要实现控制功能,CPLD重要实现I/O口扩展、逻辑判
5、断和对输入、输出信号编码解码功能。 本系统采用AVR Atmega128单片机是一种高性能、低功耗8位微解决器,采用先进 RISC 构造,133 条指令大多数可以在一种时钟周期内完毕,满足了本系统对执行速度规定。它具备非易失性程序和数据存储器,128K 字节系统内可编程Flash。由于本系统在对纵向距离增减,横向距离增减,键盘扫描等程序设计均需要使用定期器。而此单片机分别提供了两个具备独立预分频器和比较器功能8 位定期器/ 计数器,以及两个具备预分频器、比较功能和捕获功能16 位定期器/ 计数器。它具备两路8 位PWM和6路辨别率可编程(2 到16 位)PWM输出比较调制器。它具备独立片内振
6、荡器可编程看门狗定期器,可以有效防止程序跑飞。 图2 主控制板硬件框图 主控制板硬件框图如图2所示,系统初始化后,当有运动按键信号输入单片机时,单片机将输出相应纵向或横向控制信号。单片机接受通过滤波后纵向电机编码器信号,由内部程序计算当前横向和纵向位置,并将当前位置信息输出到CPLD,由CPLD驱动显示某些,显示当前横向和纵向位置。在寿命测试模式下,纵向显示某些也同步可以显示寿命测试计数。本系统具备串行通信功能,可以通过串行接口与PC机或其她设备通信。 3 控制系统软件设计 主控制板一方面接受来自顾客操作信号,然后依照这些信号状态,通过AVR单片机和CPLD内部程序实现对电机控制
7、和显示功能。在本检测系统中,由于需要控制和显示信息诸多,并且关联性很强,因而需要对单片机进行复杂编程才干实现各个功能。对本系统而言,AVR单片机固化程序质量,直接影响到了整个系统运营稳定性和控制精度,因而AVR单片机固化程序编程技术就成为系统控制核心,这同步也是本系统设计重点之一。通过度析床体设计规定和实际运营状况,设计开发出一套床体运动测试程序,使得测试系统可以对床体实际运营中所有运动状态、运动精度和运动寿命进行测试。 3.1 电机控制方略 本系统对步进电机采用了开环控制,对直流伺服电机采用了闭环控制。 3.1.1 步进电机控制 直流步进电机由主控制板发出脉冲驱动信号给直流步进电机驱
8、动器,从而驱动步进电机动作。电机转动角度和位置由主控制板发出脉冲个数决定。单片机是通过控制向驱动器输出脉冲数量,通过计算后判断当前床体横向位置。横向位置通过数码管显示在顾客界面上。由于步进电机具备误差不累积特性,因此通过这种开环控制方式可以实现步进电机精准控制。 3.1.2 伺服电机控制 直流伺服电机是由单片机发出PWM驱动信号通过放大后驱动电机动作。通过接在电机上编码器反馈信号和先后极限位置传感器判断床体当前纵向位置,实现了直流伺服电机闭环控制。控制电机驱动信号,就可以实现电机起/停、正/反转和加/减速功能,从而实现床体简朴运动、复杂运动和指定运动状态。伺服电机驱动是由主控制板发出控制信
9、号,由驱动电路驱动直流伺服电机动作,配以脉冲发生器(编码器)测量电机转角,经滤波后反馈给单片机,从而构成了电机闭环控制系统,实现了对直流伺服电机精准控制。 3.2 AVR单片机固化程序 AVR单片机固化程序采用ICC语言编写,并使用模块化设计办法,分为主程序、键盘扫描模块、显示模块、运动控制模块、横向运动测试模块、纵向运动测试模块和寿命测试模块。模块化设计使软件更加灵活,便于调用和移植,并且在错误发生时候,可以不久找到错误,极大提高了系统可靠性和稳定性。 3.2.1 主程序 主程序要完毕系统初始化,中断设立,全局变量设立和看门狗设立等。在初始化结束后,系统进入主查询循环过程,
10、判断当迈进行操作,并进入相应功能模块。系统程序中采用了状态位方式,实现主程序和各个功能模块,以及各个功能模块之间运动状态通信,保证了在各个功能模块之间切换时,系统安全和稳定性。系统主程序流程图如图3所示。 图3 主程序流程图 图4 键盘扫描模块程序流程图 3.2.2 键盘扫描模块 由于对系统响应速度规定不高,因此键盘扫描采用了查询方式。键盘扫描模块程序流程图如图4所示,纵向运动优先级不不大于横向运动优先级,当纵向按键和横向按键同步按下时,床体将会纵向运动,横向运动按键被屏蔽。 3.2.3 寿命测试模块 寿命测试某些是本系统中构造最复杂,涉及变量最多一种功能模
11、块,并且同步存在系统状态位和寿命测试状态位变量,因此各个功能模块之间状态通信也比其她功能模块复杂。在这个模块中,重要实现了床体自动进行复杂运动功能,并且可以对各种预先设定循环运动计数,从而实现对床体寿命测试。 图5 寿命测试模块 3.3 CPLD固化程序 CPLD固化程序采用VHDL语言编写。重要功能为: ① 驱动“纵向位置”数码管显示当前纵向位置或寿命测试计数; ② 对极限位置传感器差分信号解码后,输出给MCU; ③ 接受横向位置信号,并驱动“横向位置”数码管,显示横向位置; ④ 驱动极限位置批示LED; 4 结论 通过在核磁共振仪床体上进行实际应用,证明本系统可以
12、完全实现对床体控制功能,并且满足对床体各种测试规定,具备较高稳定可靠性。本系统可以独立对核磁共振仪床体进行检测,大大减少了生产成本,缩短了生没产周期,具备较高应用价值。 参 考 文 献 [1]王晓明.电动机单片机控制[M].北京:北京航空航天大学出版社.. [2]马潮.高档8位单片机ATmega128原理与开发应用指南(上)[M].北京:北京航空航天大学出版社.. [3]周立功,夏宇闻等.单片机与CPLD综合应用技术[M].北京:北京航空航天大学出版社.. [4]王向周,任月慧,郑戍华等.基于MB90F549单片机直流伺服电机调速系统[J].电测与仪表.,40(450):59-61,21






