1 引言 在鋼絲繩探傷檢測中,要實現檢測傳感器到存儲器的數據交換。USB移動存儲器具有攜帶方便、操作快捷、成本低廉等優點。隨著其技術的發展及廣泛應用,如何實現使用單片機控制來完成移動存儲這一過程成為了工控領域研究的熱點。 2 USB功能模塊簡介 2.1 模塊概述 USB是—種查詢(Polling)總線,由主控制器啟動所有的數據傳輸。USB上所掛連的外設通過由主機調度的(Host-Scheduled)和基于令牌的(Token-Based)協議來共享USB帶寬。目前,絕大多數Host功能角色被集成在各種類型的PC機(或以上層次機器)上。各種各樣的基于USB的移動設備,包括USB移動存儲器、帶USB接口的數碼相機等都集成USBSlave功能角色。這樣,就導致這些作為USBSlave的USB接口的數字設備無法應用于嵌入式系統中。解決這一問題的根本辦法就是在需要使用USB設備的嵌入式系統中集成USBHost功能模塊,使之具有與USBSlave設備進行數據傳輸的能力。而MemMaster模塊就具有這種功能。 MemMaster作為USB系統中的Host設備,帶有一個RootHUB,可供用戶接入作為Slave的USB移動存儲器。該MemMaster模塊遵守USB1.1協議規范,支持所有基于USB的移動存儲器,支持FAT12、FAT16文件系統。MemMaster模塊可以模塊的方式,通過總線集成到用戶的數據采集等系統中,以提供用戶將獲得的數據通過該模塊以文件的形式保存在移動存儲器中,以便需要時在PC機中進行處理。 MemMaster在集成到用戶系統中后,表現為用戶系統的一個外部雙端口RAM。用戶系統通過向該外部RAM的指定區域寫入命令和相應的數據,來控制MemMaster模塊的操作,并且從指定區域讀出響應和相應的數據來獲得MemMaster模塊提供的服務。通過這樣的方式,雙方實現協議交互。 2.2 硬件配置 MemMaster支持USB1.1標準,最大寫入速率達100KB/s(與測試環境有關),輸入電壓5V,工作電流100mA(不包括USB移動存儲器)。INTR引腳作為從RAM到單片機的中斷信號,BUSYR作為RAM的工作信號,SEMR作為同步信號,CER作為片選信號,其他引腳在此不做詳述。 2.3 接口使用 MemMaster通過雙端口RAM,直接通過總線與用戶的單片機系統相連。因此,就用戶單片機系統而言,MemMaster表現為一個外置的RAM,而該RAM中的部分區域不能使用、部分區域被用作協議命令和數據的交互,剩余的部分可以由用戶自行控制使用。在雙端口RAM中,區域分配如下: 0x0000-0xF8F區域已經被系統占用; 0x5F80-0x5FBF共64字節用于存放系統命令; 0x5FC0-0x5FFF共64字節用于存放系統響應; 0x6000-0xDFFF共32768字節用于存放數據部分; 0xE000-0xFFFD為用戶系統可使用區域; 0xFFFE-0xFFFF兩個字節被用作系統協議交互指示,用戶不可用于數據存放。 用戶系統與MemMaster系統的協議交互命令包括2種類型:Command和Response。Command由用戶系統發往MemMaster系統,而Response為相反方向,由MemMaster發往用戶系統。具體的實施在第四節中有介紹。 3 系統設計 3.1 系統工作原理 現在,鋼絲繩的應用越來越廣泛,為了保護人身和財產安全,鋼絲繩探傷檢測儀器也隨之發展起來。目前,鋼絲繩探傷檢測多以PC機作為檢測數據的接收和存儲器件,但是這樣成本高、攜帶不方便。在此,運用MemMaster模塊實現現場檢測數據存儲到移動存儲器就克服了這些缺點,提高了系統的性價比。系統的工作原理描述如下:檢測傳感器開始工作時,輸出脈沖信號作為控制電路的同步信號,同時檢測鋼絲繩的三路參數數據(模擬信號)。當控制電路獲得同步信號后,啟動A/D轉換,取得轉換結果,系統對數據進行處理后,判斷是否有斷絲發生,如果有則報警。同時把數據寫入移動存儲器中在控制電路上電時就建好的文件中,以便將來分析處理。 3.2 系統配置 在此,A/D轉化器件采用的是MAX186,MAXl86將8通道模擬開關、大帶寬跟蹤/保持電路、12位A/D轉換器和移位寄存器集成到一片20腳雙列直插芯片上,消除了傳輸誤差,提高了采樣精度和轉換精度。它體積小、轉換速度快、轉換精度高、功耗低、用5V單電源或V雙電源供電,模擬輸入可由軟件設置為單或雙極性和單端或差分兩種輸入轉換方式。它的SCLK引腳作為時鐘信號輸入,作為片選信號輸入,DIN作為串行信號輸入,DOUT作為串行信號輸出。 在系統上電時,需要創建接收文件,文件的創建時間由DS1302提供。DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,具有主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電的能力。它的I/O引腳作為數據輸入輸出,作為復位信號輸入,SCLK作為時鐘信號輸入。 單片機采用的是華邦公司的W78E58B,它是8位單片機,內含32KBFlash/EEPROM,其引腳功能與8051系列單片機完全兼容。系統連接圖如圖1所示。 4 軟件設計 為了使各部分硬件電路按一定順序進行工作,在單片機的程序存儲器中固化了用C51編寫的應用程序,包括系統初始化程序、時間參數獲取程序、文件創建程序、A/D轉換程序、報警分析程序、數據寫入程序。軟件采用模塊化設計方式,將各個功能分成獨立的模塊。其中,A/D轉換程序放在中斷程序中。程序流程圖如圖2所示。 4.1 報警算法分析 鋼絲繩斷絲檢測信號為疊加于噪聲背景上的局部區域的異常信號。為了能夠對斷絲進行報警,首先應從檢測信號中將它分離出來。根據報警的實時處理要求,提取斷絲檢測信號的方法應簡潔,花費的運算時間短,占據的內存空間小。下面給出一種峰峰值超限法。 峰峰值超限法利用局部異常信號波形的峰谷差值特征進行斷絲檢測信號的提取。從信號波形來看,檢測信號是由大量的局部波峰和波谷構成的,在檢測信號的每一微小的局部均將存在著一個完整的峰谷波形信號。峰峰值定義為某一局部峰谷波形信號的峰值與谷值之差的絕對值,當某一局部峰谷波形信號的峰峰值超過門限時,則認為是局部異常波形信號。在基于聚磁的鋼絲繩斷絲檢測中,檢測信號波形是一個完整的局部峰谷波形,這是由斷絲斷口漏磁場的分布決定的,且當選擇好聚磁器的結構和檢測元件的布置位置時,斷絲檢測信號將是單一的正峰信號,且信號的峰峰值比鄰近的信號波形大得多,因此很容易用峰峰值超限法提取。 設vn,n=0,1,2,3,4,為5個連續的局部極值點,在程序中我們判斷:當((v-v)>3*(v-v[0]))&&((v-v)>3*(v-v))&&(v[0]-v>26)&&(v-v>26)時,報警。 4.2 USB數據存儲程序設計 在接口使用中已經介紹了用戶系統與MemMaster系統的協議交互命令包括2種類型:Command和Response,下面就來具體說明一下Command/Response消息。 Command/Response消息用于在用戶系統或MemMaster系統將要發出的Command或Response及相應數據準備好后,通過對方(MemMaster或用戶系統)Command或Response已經準備完畢,可以開始執行的消息。該消息通過向雙口RAM的0xFFFE或0xFFFF地址寫/讀數據來完成。該消息通過中斷方式來實現,即:對用戶系統而言,當向0xFFFE寫入數據時,即為通知MemMaster有命令待執行。當系統進入中斷程序確定時,說明MemMaster端已經完成了命令,并將響應準備好,可以進入下一步操作。這時,從0xFFFF即清除了該中斷。目前系統定義,向0xFFFE寫入和從0xFFFF讀出的值都是0x01。參考代碼如下: #defineDPRAMRInt((char*)0xFFFF) #defineDPRAMLInt((char*)0xFFFE) #defineSEND_SYSCMD*DPRAMLInt=0x01 voidservice_int1()interrupt0/*外部中斷0*/ { bRecvResp=*DPRAMRInt; } 下面給出文件創建函數來說明用戶系統與MemMaster系統是如何實現Command消息傳送的(Response消息類似)。 voidCreateFile(unsignedcharnm)/*nm用于判斷文件是否存在*/ { CreateFileCmdPkg*crCmdPkg; /*CreateFileCmdPkg為創建命令包,包括創建命令的各個屬性*/ crCmdPkg=(CreateFileCmdPkg*)Command; MemSet((char*)crCmdPkg,0,64); MemSet(crCmdPkg->FileName,0x20,8); crCmdPkg->CommandCode=SYS_CREATE_FILE; /*SYS_CREATE_FILE為創建命令碼*/ crCmdPkg->FileName[0]=’T’; crCmdPkg->FileName=A+nm; /*FileName為文件名*/ crCmdPkg->ExtensionName[0]=S; crCmdPkg->ExtensionName=H; crCmdPkg->ExtensionName=J; /*ExtensionName為后綴名*/ crCmdPkg->FileAttr=0x20; crCmdPkg->CreateTime[0]=min; crCmdPkg->CreateTime=hour; /*CreateTime為創建時間*/ crCmdPkg->CreateDate[0]=date; crCmdPkg->CreateDate=year; /*CreateDate為創建日期*/ /*min、hour、date、year是由DS1302提供的數據計算而得*/ crCmdPkg->Option=0x00; bRecvResp=0; SEND_SYSCMD;/*發送Command消息*/ cs_ram=1;/*取消雙口RAM片選*/ Delayms(10); while(!bRecvResp);/*判斷雙口RAM是否收到消息*/ cs_ram=0;/*片選*/ } 5 實驗結果分析 鋼絲繩檢測系統是通過對被測鋼絲繩進行磁化,用敏感元件檢測鋼絲繩斷絲處的泄漏磁場,以此判斷有無斷絲,再通過計算機以及相應的軟件,對此漏磁場的波形進行分析,進一步判斷斷絲的數量,并通過光電編碼器確定相應斷絲的位置。在實驗中選取一根24(67)結構的鋼絲繩樣繩,并在指定位置做出斷絲,實驗分兩組,每組50次,用該套系統進行測定,實驗分析結果如表1所示。 通過表1(負號表示漏判,正號表示錯判)的分析計算表明:當要求無錯判時(錯檢斷絲根數為0),斷絲定量準判率為95%;當允許錯判1根時(錯檢斷絲根數為-1,0,1),斷絲定量準判率為100%,因此,符合工況要求。同時,報警系統也對斷絲進行了實時報警。 6 結論 鋼絲繩檢測系統要求的檢測速度為每秒0~2000個數據,本套裝置完全可以勝任,同時保證了測量的精度。該裝置可以按指定的格式存入數據,并且動態的檢測移動存儲器中是否有同名的文件,并自動添加文件,可以在無人工干預的情況下實現多次檢測,使用起來極為方便。同時,報警系統可以對斷絲進行實時報警,方便了實時處理。 該裝置把USB標準應用到了鋼絲繩檢測體系中去,適應了計算機的發展潮流,具有攜帶方便、操作快捷、成本低廉、存儲容量大等優點,效果良好,應用前景廣闊。 |