摘要:根據容柵傳(chuan) 感器的原理與(yu) 帶USB模塊的C8051F321單片機,設計了一套基於(yu) USB接口的測量係統。該係統能實現最大數跟蹤、最小數跟蹤、示值保持和清零等功能,通過USB接口與(yu) 上位機交換數據。係統中采用LM393芯片將傳(chuan) 感器信號電平轉換為(wei) CMOS電平,采用光耦隔離技術等增強係統的抗幹擾能力。
關(guan) 鍵詞:容柵傳(chuan) 感器;電平轉換;C8051F321
引言
容柵測量器具有測量可靠、體(ti) 積小、功耗低、功能多等特點。隨著測量技術向精密化、高速化、多功能化發展,具有多種優(you) 良特性的容柵傳(chuan) 感器應用得越來越廣泛。由於(yu) 容柵傳(chuan) 感器數據的傳(chuan) 輸多采用RS232/RS485總線方式,而USB總線方式方便、高效,並有取代串口通信方式的趨勢,因此設計一款帶USB接口的容柵傳(chuan) 感器測量係統具有實際應用價(jia) 值。
1 容柵傳(chuan) 感器測量原理
容柵傳(chuan) 感器的工作原理是根據平板電容理論而來。一般容柵傳(chuan) 感器的結構包括動柵板和定柵板。動柵板包含發射極和接收極,定柵板包含反射極。反射極分別和發射極、接收極形成平板電容器。通過在發射極上施加n相激勵信號,反射極將此信號反射到接收極,隨著動柵板的移動,接收極的感應信號的幅度變化不大,而相位變化與(yu) 位移量成一定函數關(guan) 係:
θ(x)=arctan[(1-2x/w)/(1+√2)] (1)
其中,x為(wei) 位移量,w為(wei) 小發射極寬度。當位移發生一個(ge) w寬度變化時,接收極產(chan) 生360°/n的相差。設激勵信號的周期為(wei) T,則有:
T=N·β (2)
式中:β為(wei) 最小計時單位,N為(wei) 常數。而每周期代表位移量為(wei) L(本係統為(wei) 0.508 mm),在每周期中β代表一個(ge) 小相位,則一個(ge) 周期被分解為(wei) N個(ge) 小相位,每個(ge) 小相位代表位移量即最小分辨率:
△l=L/N (3)
本係統N為(wei) 512,即最小分辨率約為(wei) 0.001 mm。對於(yu) 最大測量速度Vmax,因為(wei) 在一個(ge) 周期內(nei) 最多能分辨N個(ge) 相位,所以有:
Vmax=L/T (4)
2 係統硬件設計
2.1 C8051F321芯片介紹
C8051F321片內(nei) 集成了數據采集和控製係統中常用的模擬部件和其他數字外設,采用交叉開關(guan) 實現I/O端口的靈活配置,自帶USB2.0收發器、控製處理器和內(nei) 部上拉電阻,可在全速(12MHz)或低速(1.5MHz)下運行,支持8個(ge) 靈活通用的USB端點,內(nei) 置1K的USB專(zhuan) 用緩衝(chong) 寄存器。
2.2 傳(chuan) 感器信號處理模塊設計
容柵傳(chuan) 感器接口為(wei) B531,信號線有4根:電源線(1.5 V)、地線(0 V)、時鍾線(CK)、串行數據線(DATA),並且通過控製CK、DATA信號線的電平可以實現容柵傳(chuan) 感器的不同功能比,如最大值跟蹤、最小值跟蹤、數據保持和清零等。
由於(yu) 容柵傳(chuan) 感器內(nei) 部的專(zhuan) 用控製芯片輸出的信號電壓為(wei) 1.5 V,而後續數據采集係統工作電壓為(wei) 5 V,要進行數據交換則必須進行電平轉換,電平轉換原理圖如圖1所示。電路中采用LM393芯片轉換電壓,LM393芯片實質上為(wei) 2個(ge) 比較器,比較電壓為(wei) 容柵傳(chuan) 感器工作電壓的一半左右,設為(wei) 0.6V。通過比較電壓0.6V與(yu) CK和DATA信號線電平比較,即可將CK、DATA信號線的電壓轉換為(wei) 0V或者5V。

2.3 硬件抗幹擾電路設計
由於(yu) 係統經常工作在工業(ye) 現場等領域,各種電磁幹擾很常見,為(wei) 了使係統能穩定工作,采用光耦隔離技術將傳(chuan) 感器和單片機隔離。光耦隔離原理圖如圖2所示。光耦器件采用HCPL2631高速光耦,輸出引腳OUT1和OUT2經過上拉電阻處理後,將CK2和DATA2信號傳(chuan) 輸給C8051F321單片機處理。

3 係統軟件設計
3.1 數據采集程序
容柵傳(chuan) 感器時序圖如圖3所示。其中包含3個(ge) CK信號說明和1個(ge) DATA信號說明。CK(a)表示要發送的完整數據間的時序關(guan) 係;CK(b)表示一個(ge) 完整數據內(nei) 部各個(ge) 數據組的時序關(guan) 係;CK(c)和DATA表示一個(ge) 數據組內(nei) 的時序關(guan) 係和對采樣點的說明。由圖可知數據每隔250 ms發送一次,在時鍾CK的上升沿數據有效。數據由LSB到MSB依次發送,總共24位二進製數據,分成6組,每組數據間隔820μs。其中前5組為(wei) 數據位,第6組為(wei) 控製位組(包含符號位和公英製位),控製位組的第0位的“0”表示正數,“1”表示負數,第3位“0”表示公製單位mm,最小單位0.01 mm,“1”表示英製單位inch,最小單位0.000 5 inch,x表示無效。為(wei) 了能夠實時采集數據,采用中斷方式檢測CK信號,邊沿觸發。檢測CK信號的高電平持續超過820μs時,當出現下降沿時觸發中斷,進入中斷程序,再持續檢測低電平直到出現上升沿,讀取DATA信號電平並存儲(chu) ,總共采集24位。返回主函數根據符號位和公英製位進行相應處理。相關(guan) 程序代碼如下:


3.2 USB程序
因為(wei) C8051F321的USB模塊高度集成化,所以對USB接口的設計主要是USB固件程序的設計。其中最重要的是USB描述符和USB傳(chuan) 輸中斷的處理。當USB中斷到達時,C8051F321首先讀取3個(ge) 中斷寄存器(CMINT、IN1INT和OUT1INT)來判斷中斷來源(USB複位中斷、端點0中斷、端點1輸入中斷、端點2輸出中斷),然後跳入相應的處理模塊進行處理。USB中斷程序流程如圖4所示。

端點0主要用於(yu) 主機對USB設備的配置、狀態信息的獲取和設備錯誤的糾正等,它的中斷處理模塊由控製輸出和控製輸入2部分組成。每次傳(chuan) 輸由設置事務開始,然後根據設置事務數據包中的USB標準命令請求判斷該次傳(chuan) 輸是控製輸入還是控製輸出。USB複位中斷將相關(guan) USB變量、寄存器和各端點的狀態恢複為(wei) 初始狀態。端點1輸入中斷和端點2輸出中斷均為(wei) 批量傳(chuan) 輸中斷,其主要作用是在收到中斷時,在各自預定義(yi) 好的緩衝(chong) 區中寫(xie) 入要傳(chuan) 輸給主機的數據或讀取傳(chuan) 輸過來的數據。
3.3 主程序
係統程序主要包括主程序、時鍾初始化子程序、端口初始化子程序、USB控製器配置初始化子程序、延時子程序、采集數據中斷子程序、USB中斷子程序和附加功能子程序。由於(yu) 采集數據實時性要求比較高,所以將采集數據中斷設為(wei) 高優(you) 先級。
附加功能子程序包括正常計數、數據保持、最大值跟蹤、最小值跟蹤和清零的功能。對附加功能的實現均是通過控製CK和DATA信號線完成,附加功能轉換流程如圖5所示。給CK信號線一個(ge) 負脈衝(chong) ,即可完成清零操作;在正常計數狀態下將DATA信號線置為(wei) 高電平,容柵傳(chuan) 感器將進入保數功能;如果再將CK信號線置為(wei) 低電平,容柵傳(chuan) 感器進入最大值跟蹤功能;內(nei) 部專(zhuan) 用芯片將用新測得的數據與(yu) 上一個(ge) 數據進行比較,如果新測得數據大,則替換掉,否則丟(diu) 棄。可以在上位機上通過USB測試軟件發送相關(guan) 命令來控製係統進行操作。程序中設定一個(ge) 字節的變量來存放從(cong) 上位機接收到的命令,當判斷是其中的一個(ge) 命令時就調用相應的處理程序完成操作。
#p#分頁標題#e#
3.4 軟件抗幹擾
環境的幹擾使單片機程序很容易“跑飛”,為(wei) 了控製程序正常運行,除了硬件上使用光耦隔離技術之外,軟件上可采用設置“軟件陷阱”的辦法來將跑飛的程序拉入正常軌道,即在程序代碼空間使用跳轉指令將跑飛的程序拉到程序執行的開始位置,具體(ti) 操作方法是在所有未被使用的代碼空間處寫(xie) 入“LJMP 0000H”指令。另外,可利用單片機自帶的“看門狗”功能看住程序,一旦程序跑飛,看門狗將強製單片機複位。也就是說,在程序代碼中每隔一定時間就設置一個(ge) “喂狗指令”,清除看門狗計時器值,不讓其達到最大值而發出複位信號。
結語
使用主機上的軟件測試出該係統軟硬件能夠穩定可靠地運行,點擊測試軟件的相關(guan) 功能按鈕,容柵傳(chuan) 感器能夠完成相應的功能操作。與(yu) 傳(chuan) 統的RS232/RS485通信方式相比較,該方案解決(jue) 了不帶串行通信方式的上位機的通信閑難,抗幹擾能力更強,為(wei) 係統提供更穩定的電源,適用於(yu) 惡劣環境下的工業(ye) 現場的高精度測量。
轉載請注明出處。







相關文章
熱門資訊
精彩導讀



















關注我們

