多通道數據實時采集系統設計
引言
現代工業生產中,環節眾多、流程復雜、數據不斷更新、隨著生產工藝改進的迫切要求,需要研制新型數據實時采集系統即多通道數據實時采集系統。基于stc11f48xe具有完全兼容8051系列單片機、含有flash技術主導的存儲器、可反復進行單片機控制試驗等優點,本文選用它作為數據采集和發送的cpu。在和本地的通訊中采用rs485標準,相比rs232大大提高了通訊速率、傳輸距離和多機連接的能力,這樣使本文設計的數據采集系統具有抗干擾性強、響應速度快的優點,同時可擴展為多機通信。
系統總體方案設計
根據系統要求,整個系統由主要以下幾個部分組成:旋轉變壓器、ad2s1200、電源模塊、stc11f48xe、485通信模塊。系統框圖如圖1所示。

系統的工作原理為:旋轉變壓器綁定在電機轉軸上,通過ad2s1200給的勵磁信號產生正余弦信號送回給ad2s1200,ad2s1200對正余弦信號進行處理后得到轉軸的位置,把這個數據以入堆棧的方式存進stc11f48xe的ram中,當上位機請求讀取數據量時,單片機通過自定義的協議把數據傳送給上位機。
硬件電路設計
a/d轉換模塊
模擬數據量通過旋轉變壓器采集,通過ad2s1200芯片完成模數轉換。ad2s1200是ad公司推出的12位帶參考振蕩器的r/d轉換器,具有以下主要特點:(1)并行和串行輸出方式;(2)系統錯誤檢測;(3)絕對位置和速度輸出;(4)差分輸入;(5)最大跟蹤速度為1000rps,可仿真12位分辨度的增量式編碼器;(6)與dsp和spi接口標準兼容。由于本文設計的是多路數據采集,所以我選用串行輸出方式。ad2s1200串行輸出時序圖如圖2所示。

如圖2所示,在sample信號拉低t2時間后,cs信號即片選信號被拉低,sample信號必須保持t1時間的低電平,rdvel信號我們選擇給以高電平,代表輸出信號是位置量。這時在so口會有數據輸出,要讀出so的數據還需要rd為低電平,且在sclk的下降沿,這樣讀出的數據比較穩定。讀串行數據的時間要求如圖3所示。

單片機和通信模塊
單片機采用宏晶科技的stc11f48xe。8051單片機在讀取外部狀態時i/o口必須先置高。傳統8051單片機執行i/o口操作,檢測高低電平變化以及讀外部狀態都是12個時鐘周期,因此在讀取外部狀態i/o時相應的i/o端口已經是高電平。而stc11f48xe執行相應的操作只需要4個時鐘周期,在執行完由低變高的指令后,需要再過一個時鐘周期該i/o口才會變高,這時可以通過增加兩個空操作延時指令來滿足讀狀態條件。單片機控制電路和通信電路如圖4所示。

單片機在數據通信時經過一個總線收發器74hct245和一個施密特觸發器74ls14到達rs485的驅動電路,通過485接口和上位機進行數據傳輸。其中總線收發器是為了加強信號,施密特觸發器是為了修正波形。lbc184是常用的485通信芯片同時完成將ttl電平轉換為rs485電平。
電源模塊
電源分成了數字電源和模擬電源。因為數字信號的高頻噪聲很大,如果模擬地和數字地混合的話,就會把噪聲傳到模擬部分,造成干擾。
軟件設計
程序流程圖如圖5所示。數據采集系統的軟件主要包括主程序、數據采集、數據入棧出棧、中斷處理。在完成串口等初始化后,程序進入數據采集,在數據采集時要關閉串口中斷,不然會引起數據的不正確,采集完數據后打開串口中斷。若沒有接收到串口中斷,程序就會一直采集數據并把數據入棧,當棧滿的時候就會清空數據棧。接收到串口中斷時,就把棧頂數據發送給上位機。

實驗結果
讓旋轉變壓器停在某處,測得此時的so和sclk如圖6(一組數據放大后的波形)所示,上面的圖形代表so,下面的圖形代表sclk。從圖6我們可以讀出這組數據為1001001111011111,轉換成十六進制即是93df。

利用串口助手以中斷的方式從單片機取得數據如圖7所示,從圖7可看到收到的數據為93df,和從示波器上讀出的數據一致,由此推斷出單片機能正確的存入和上傳數據,達到了預期的效果。

結束語
該系統具有高實時性,較強的抗干擾能力,占用空間小方便應用于嵌入式等特點。作為一種多通道的實時數據采集系統,它不僅可以采集位置量還可以采集速度,同時也能方便地由四通道擴展到八通道、十二通道等,可以廣泛地應用于工業現場中。
文章版權歸西部工控xbgk所有,未經許可不得轉載。