文中设计的冲击式小麦硬度检测控制器,以AT91SAM9263为核心控制器,测量工艺简单,工作可靠,同时也满足了工业现场的实时性要求。
1 小麦硬度检测原理分析
有关小麦硬度的方法有100多种,其中压力法是利用压头或刀头压碎或切割方法来测定小麦硬度。这种方法需要在大量的样品测定的基础上,统计分析才能得出正确的结果。
本系统对小麦硬度的检测是基于压力法,将一定质量的小麦装入圆筒型容器中,经过振动后以一定压力P将其压实。采用一定直径D的硬质探头由电机控制模块驱动伺服电机以一定速度V插入盛装小麦的容器中,富士伺服电机的电子齿轮由α、β值决定,压入深度H由控制器的位移检测模块根据伺服电机的编码器反馈的脉冲数来得到。
此式中ρ为伺服电机旋转一周的机械移动量,α、β为命令脉冲补偿,ω为电机转动的圈数。其中压力F可以通过公式F=KU得到,其中U为压力传感器输出的电压,K为压力传感器的系数。根据压入深度H与压力F的关系和大量的统计分析得到小麦硬度Y。
本系统的控制器主要完成伺服电机的速度和方向的控制,压力传感器的信号采集和探头的位移检测的任务。冲击式小麦硬度检测仪的硬件系统框图如图1所示。
2 室控制器硬件电路设计
2.1 最小控制系统
小麦硬度检测系统要完成一个通道的数据采集、电机速度方向控制、压力探头位移的测定和通讯等功能,外围电路丰富。控制器要完成传感器的数据采集,对采集的数据软件滤波和压力探头位移的实时测定及相关位移数据的累加等功能,数据运算量较大。本系统选用运算速度快、抗干扰能力强的AT91SAM9263做微控制器,能够满足本系统的要求。
2.2 滤波与放大电路的设计
滤波电路主要滤去信号中的纹波,提高信号的抗干扰能力。根据无源低通滤波电路原理,本系统设计了一种改进的滤波电路,如图2所示。传感器输出的差分信号通过电阻R21、R23右端进入系统。其中电阻R21、R23和电容C149、C150一起组成了对地低通滤波结构,目的是滤去差分信号中的高频噪声干扰。并联涤纶电容C181、C141能够很好地衰减掉差模噪声。高精密电阻R20、R22和钽电容C173组成低通滤波结构,滤掉了截至频率以上的信号,再经过涤纶电容C34、C35衰减掉了共模噪声。压力传感器输出的差分信号是mV级的电压信号,很容易受到外界的干扰,必须进行放大处理才能送到ARM处理器中进行AD转换。
AD620是一种低功耗的仪用放大器,特别适合做小信号的前置放大级,理论上可以放大1000倍,在此系统中可以通过图2电路中的电位器W1对放大的倍数进行调整
2.3 电机控制电路设计
系统通过电机精确控制丝杆上的滑动模块向下运动以提供均匀压力。根据系统的需求,选用富士FALDIC-W型号的伺服电机作为执行器。伺服电机的速度的控制使用方波信号,方波的频率控制电机的速度,在应用中使用AT91SAM9263开发板的GPB0引脚的TOUT0。伺服电机方向的控制需要电平信号,系统中对电机的方向的控制使用GPB1的普通I/O口,通过输出0、1数字信号完成对电机正反方向的控制。由于对电机速度和方向需要差动信号,要对控制器发过来的脉冲和电平控制信号使用四路差动线路驱动器MC3487进行转化为差动信号再送给伺服控制器,电路如图3所示。
2.4 位移检测电路设计
位移检测主要是根据伺服电机的编码器在伺服电机转动时反馈的脉冲数来确定探针的移动位移。其中编码器在电机转动一周时所发送的脉冲数可以通过伺服单元的设置模式进行设置,设置范围为16~32 768个/转。反馈过来的脉冲信号也是差动信号,对电机反馈过来的脉冲差动信号需要使用MC3486来转化为AT91SAM9263所要的脉冲信号。这样就可以利用控制器的外部中断来检测脉冲的个数。然后利用式(1)实时的测定位移传感器探头的位移。电路如图4所示。为了提高准确的检测编码器发出的脉冲个数,这里使用了两路脉冲检测。其中,SFIA+、SFIA-、SFIB+和FIB-是编码器的两相差动信号,通过MC3486转为脉冲信号,再通过74HC14施密特触发器整形后,获得较理想的矩形脉冲,然后送到外部中断进行脉冲计数。
3 驱动软件设计
设备驱动程序是操作系统内核和AT91SAM9263开发板之间的接口。设备驱动程序主要完成对设备进行初始化和释放,把数据从内核传送到硬件和从硬件读取数据、读取应用程序传送给设备文件的数据。Linux为所有的设备文件都提供了统一的操作函数接口,方法是使用数据结构struct file_operations。这个数据结构中包括许多操作函数的指针,如open()、close()、read()和write()等。
由于Linux内核中自带有串口和AD的驱动,故只需完成对位移检测模块和电机控制模块两部分的驱动设计就可以了。接下来就以位移检测驱动为例来说明驱动开发的方法。前面已经提过主要是通过对编码器发出的脉冲进行计数来实现位移检测,脉冲的数可以使用外部中断,在此以中断0为例。只列出此驱动程序中比较重要的函数,如中断处理函数以及读写函数的实现。在驱动的Open()函数中使用request_irq(IRQ_ EINT0,button_irq_ser,SA_INTERRUPT,DEVICE_NAME,NULL)语句注册中断。在驱动的初始化函数中使用set_external_irq(IRQ_EINT0,EXT_FALLING_EDGE,GPIO_PULLUP_DIS)语句设置触发中断的类型为下降沿触发。所以当下降沿来到时,进入中断服务子程序。
4 硬件测试结果分析
通过对上位机的传感器检测,设定伺服电机的控制脉冲频率为520 Hz,压力传感器空载来回测定4次,测得传感器的mV级零点值,经过多次测量压力传感器的零点值误差精度在(7~8)×10-5,说明冲击式小麦硬度检测系统压力传感器的零点值是很稳定的。测定电机控制电路的方法是方向控制引脚输入频率为520 Hz方波脉冲来检测对伺服电机的速度控制情况,设定伺服控制单元的α=3116,β=1,根据式(2),其中V是电机的转速α、β也是命令补偿脉冲。可以求出电机转1圈所需的脉冲个数理论值为约42.06个/转,通过外部中断控制输入42 060个脉冲,重复测试10次,结果控制精度符合要求。
对电机方向控制引脚输入0时,传感器向下运动,规定为正方向,输入1时电机反转。测试结果表明控制器的硬件电路经度和性能都达到了预期的要求。
5 结束语
基于ARM9开发板的小麦硬度检测系统,以AT91SAM9263开发板为硬件设计平台,软件以嵌入式Linux操作系统为运行平台,在设计和实现中充分地利用了Linux微内核、驱动可裁减的特性和多线程数据通信机制。经现场测试,监控下位机软件能够地稳定运行,串口能够正确接收和发送两端数据,达到了预期的要求。测试结果表明冲击式小麦硬度检测系统具有良好的使用价值。
相关产品:
Cortex-A8开发板、AM335X开发板、Cortex-A9开发板、Cortex-A5开发板、ARM9开发板、AM1808开发板、AT91SAM9260开发板、AT91SAM9263开发板、AT91SAM9G45开发板、AT91SAM9M10开发板、EP9315开发板、CIRRUS LOGIC EP9315工控板、AT91SAM9263工控板、ARM9工业控制板、ARM9工控板、TI开发板、ARM9核心板