基于STM32的断纱检测控制器设计
2014-02-01吴晓霞王希平苑世娇李云栋
吴晓霞 罗 亨 王希平 苑世娇 李云栋
北方工业大学信息工程学院 北京 100041
近年来,纺织品的质量检测逐步发展成机器视觉领域的一项重要课题,越来越多的瑕疵检测设备不断上市。通过对实验室瑕疵检测设备产品的使用,结合对其他产品的参考,笔者发现由于设备需要放到经编机上,而工作人员不能时刻在经编机前工作,造成人机交互方面的功能不完善,如果开发一款HMI,可以很容易解决以上问题,同时也使得整个产品更加完善,更加人性化。为了解决这个问题,结合实验室的瑕疵检测设备,开发了一款基于STM32的断纱检测控制器。笔者主要从硬件架构和软件框架两个方面介绍本产品。
1 硬件系统设计
1.1 系统的基本组成
在整个产品设计过程中,硬件的框架如图1所示。
硬件系统主要包括LCD显示模块、RS485通信模块、参数存储模块、电平检测模块、继电器输出模块以及JTAG调试下载模块。其中,LCD显示模式主要用于实时的显示每个终端设备的状态、布匹类型、瑕疵图像、灵敏度、当前日期、运行时长、断纱次数等参数。JTAG调试下载模块主要用来下载更新调试程序。继电器输出模块用于输出信号,控制经编机的开关。RS485总线主要用于控制器和瑕疵检测设备的通信,通过RS485总线,瑕疵检测设备可以将报警信息、瑕疵图像信息发送到控制器端,同时,工作人员也可以在控制器端进行灵敏度等参数的设置。电平检测模块主要实现控制器对电平报警信号和经编机开机信号的检测。存储模块主要是存储相关的参数。
图1 断纱检测控制器硬件框架图
产品核心芯片使用的是ST公司的STM32F103RBT6,这款芯片是内核为32位ARM Cortex-M3处理器,最高72 MHz工作频率,片内128 KB的Flash,20 KK字节的SDRAM,具有睡眠、停机、待机等多种低功耗模式,多达50个IO端口,支持JTAG接口调试,3个USART接口,2个I2C接口,能够满足产品的所有需求,而且市场价在15元左右,性价比非常高。
LCD采用的是一款工业串口屏,支持触摸屏操作,分辨率为800×480,LCD通过连接线与CPU串口相连。CPU通过向LCD发送相应的指令,进而达到操作LCD进行实时显示的目的,降低了开发难度。
系统电源供电模块主要采用TPS5430,将12 V输入电源转为5 V电源,然后将5 V电源转成3.3 V电源给CPU供电,这样的电源设计满足了设备长时间运行的需求。
参数保存模块主要采用基于I2C协议的AT24C02,主要保存当日断纱次数、累计断纱次数、灵敏度、设备工作状态等信息。
电平检测模块主要检测经编机开机信号和报警电平信号。为了避免RS485通信中的不可靠因素,在电路设计中添加了电平检测模块,在RS485报警信息发送或者接收失败的情况下,仍然可以通过电平的跳变检测到报警,提高了系统的可靠性。经编机开机信号被检测到之后,已经报警的控制器会重新刷新状态,继续进行设备状态检测工作。
1.2 系统的工作原理
整个系统的框架如图2所示,布匹设备代表经编机上的布面,标号为1~8的设备代表瑕疵检测设备,通过RS485总线与控制器接连。当智能瑕疵检测设备发出报警的时候,瑕疵检测设备会通过RS485总线发送一帧报警事件,随后将当前瑕疵图像一并发送给控制器,控制器接收到报警事件时,在LCD显示ID号设备状态区域中显示报警状态,同时将接收到的瑕疵图像数据显示到对应的位置,与此同时,控制器会发出一个控制信号,通过继电器将正在运行的经编机关掉,相应的报警灯被点亮,当工作人员发现报警时,会去处理相关瑕疵布匹,当工作人员把瑕疵处理完毕之后,打开经编机,此时控制器接收到开机信号之后,清除所有报警状态,继续正常运行。同时,工作人员可以通过控制器对检测设备进行参数设置、布类切换、经编机设备调试等操作,还可以查看当日断纱次数、累计断纱次数、设备运行时间等信息,提高整套设备的人性化。
2 软件系统的设计
2.1 软件的框架
在软件的设计上,采取了前后台的框架,前台主要用于事件的捕获与封装,主要包括报警事件、图像事件、开机事件、电平转换事件等,捕获到相关的事件之后对其进行封装,然后添加到事件队列之中,后台程序的主要任务是执行队列中的事件,对相关事件进行响应,然后更新LCD显示。具体的软件框架如图3和图4所示。
图3 软件前台程序
图4 后台软件程序
基于以上框架的应用程序,在运行过程中主要有三个优点:(1)大大提高了CPU的执行效率,在程序设计过程中,事件捕获与处理前后台宏观并行执行,且CPU无阻塞,防止了CPU的跑空,提高了CPU的执行效率。(2)充分利用了STM32强大的嵌套向量中断能力,合理地设置各中断的优先级,保证了报警事件的优先地位,同时也保证了设备的实时性。(3)为了保证软件的可维护性和可扩展性,通过设备注册和选择的方法增加软件设备的可扩展性。
2.2 软件的可扩展性
对产品的升级,主要是对LCD进行更换,可将LCD升级到更高级的产品。对于LCD设备的可扩展性,软件采用了如下方式(如图5所示)。lcddwt01和lcddwt02是两款不同型号的LCD,将它们各自的操作单独写在自己的源文件中,将抽象的设备结构体注册到lcd_mangner.c中的备用显示设备链表中,然后在主函数软件初始化时选择使用设备即可,这样main函数不能直接访问LCD硬件相关的代码,而只能通过lcd_mangner.c访问,体现了程序设计中的分离分层思想,方便了移植。所以,如果新添加一款LCD设备,我们只需写出其相关的操作源文件,将其注册到上层文件中,然后选中即完成新版本的更新移植工作,提高了工作效率。
图5 软件可扩展性设计
3 结束语
在对设备进行外壳设计之后,小批量的产品已经生产出来,经过在相关纺织企业历时5个月的试用,取得了满意的效果,同时也针对使用中产生的问题进行了改进,增加完善了设备的功能,使其更加人性化,更好地满足企业的要求。产品参考图如图6所示。
图6
[1] 王永虹,徐炜,郝立平.STM32系列ARM Cortex-M3微控制器原理与实践[M].北京:北京航空航天大学出版社,2008.
[2] 蔡新刚,陈红勋.基于STM32的智能水泵控制器设计[J].仪表技术,2009(4):53-57.
[3] STM32 Reference Manual (RM0008)[EB/OL].http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1031/LN1565/PF164489?s_searchtype=keyword.
[4] Sun,Y.;Long,H.R.Adaptive detection of weft-knitted fabric defects based on machine vision system[J].J.Text.Inst.2011(102):823-836.
[5] 迪文DGUS屏开发指南V40[EB/OL].http://www.dwin.com.cn/page/diwen3/kaifa.php.