吳曉霞 羅 亨 王希平 苑世嬌 李云棟
北方工業大學信息工程學院 北京 100041
近年來,紡織品的質量檢測逐步發展成機器視覺領域的一項重要課題,越來越多的瑕疵檢測設備不斷上市。通過對實驗室瑕疵檢測設備產品的使用,結合對其他產品的參考,筆者發現由于設備需要放到經編機上,而工作人員不能時刻在經編機前工作,造成人機交互方面的功能不完善,如果開發一款HMI,可以很容易解決以上問題,同時也使得整個產品更加完善,更加人性化。為了解決這個問題,結合實驗室的瑕疵檢測設備,開發了一款基于STM32的斷紗檢測控制器。筆者主要從硬件架構和軟件框架兩個方面介紹本產品。
在整個產品設計過程中,硬件的框架如圖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報警信息發送或者接收失敗的情況下,仍然可以通過電平的跳變檢測到報警,提高了系統的可靠性。經編機開機信號被檢測到之后,已經報警的控制器會重新刷新狀態,繼續進行設備狀態檢測工作。
整個系統的框架如圖2所示,布匹設備代表經編機上的布面,標號為1~8的設備代表瑕疵檢測設備,通過RS485總線與控制器接連。當智能瑕疵檢測設備發出報警的時候,瑕疵檢測設備會通過RS485總線發送一幀報警事件,隨后將當前瑕疵圖像一并發送給控制器,控制器接收到報警事件時,在LCD顯示ID號設備狀態區域中顯示報警狀態,同時將接收到的瑕疵圖像數據顯示到對應的位置,與此同時,控制器會發出一個控制信號,通過繼電器將正在運行的經編機關掉,相應的報警燈被點亮,當工作人員發現報警時,會去處理相關瑕疵布匹,當工作人員把瑕疵處理完畢之后,打開經編機,此時控制器接收到開機信號之后,清除所有報警狀態,繼續正常運行。同時,工作人員可以通過控制器對檢測設備進行參數設置、布類切換、經編機設備調試等操作,還可以查看當日斷紗次數、累計斷紗次數、設備運行時間等信息,提高整套設備的人性化。

在軟件的設計上,采取了前后臺的框架,前臺主要用于事件的捕獲與封裝,主要包括報警事件、圖像事件、開機事件、電平轉換事件等,捕獲到相關的事件之后對其進行封裝,然后添加到事件隊列之中,后臺程序的主要任務是執行隊列中的事件,對相關事件進行響應,然后更新LCD顯示。具體的軟件框架如圖3和圖4所示。

圖3 軟件前臺程序

圖4 后臺軟件程序
基于以上框架的應用程序,在運行過程中主要有三個優點:(1)大大提高了CPU的執行效率,在程序設計過程中,事件捕獲與處理前后臺宏觀并行執行,且CPU無阻塞,防止了CPU的跑空,提高了CPU的執行效率。(2)充分利用了STM32強大的嵌套向量中斷能力,合理地設置各中斷的優先級,保證了報警事件的優先地位,同時也保證了設備的實時性。(3)為了保證軟件的可維護性和可擴展性,通過設備注冊和選擇的方法增加軟件設備的可擴展性。
對產品的升級,主要是對LCD進行更換,可將LCD升級到更高級的產品。對于LCD設備的可擴展性,軟件采用了如下方式(如圖5所示)。lcddwt01和lcddwt02是兩款不同型號的LCD,將它們各自的操作單獨寫在自己的源文件中,將抽象的設備結構體注冊到lcd_mangner.c中的備用顯示設備鏈表中,然后在主函數軟件初始化時選擇使用設備即可,這樣main函數不能直接訪問LCD硬件相關的代碼,而只能通過lcd_mangner.c訪問,體現了程序設計中的分離分層思想,方便了移植。所以,如果新添加一款LCD設備,我們只需寫出其相關的操作源文件,將其注冊到上層文件中,然后選中即完成新版本的更新移植工作,提高了工作效率。

圖5 軟件可擴展性設計
在對設備進行外殼設計之后,小批量的產品已經生產出來,經過在相關紡織企業歷時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.