新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于雙單片機的信號處理系統設計

        基于雙單片機的信號處理系統設計

        作者: 時間:2010-12-13 來源:網絡 收藏

        CY7C132允許兩個CPU同時讀取任何存儲單元(包括同時讀同一地址單元),但不允許同時寫或一讀一寫同一地址單元。雙端口RAM中引入了仲裁邏輯(忙邏輯)電路來解決這個問題:當左右兩端器同時寫入或一讀一寫同一地址單元時,先穩定的地址端口通過仲裁邏輯電路優先讀寫,同時內部電路使另一個端口的BUSY有效,并在內部禁止對方訪問,直到本端口操作結束。BUSY可以作為中斷源指明本次操作非法。需要注意的是:這種方法當CPU發生插入等待時,可能會降低程序效率,不可應用于頻繁產生插入中斷的場合。
        該系統采用存取時間為55 ns的CY7C132,從工作速度在μs級,主工作速度在ms級,雙方同時讀取雙口RAM的概率較小,上述沖突解決方案可以滿足實際需求。在主從啟動工作后,為了防止主單片機的空讀,即從單片機的首次寫入時間晚于主單片機的首次讀入時間,將存儲器的首地址設置為起始標志位,通過主單片機讀寫該為狀態決定是否將讀取下一位的存儲位。

        2 具體電路
        根據上述系統總體結構框圖和功能,繪制統的電路原理圖,如圖2所示。
        單片機的控制或檢測工作是通過I/O引腳實現的。單片機1(U1)中,PO和P2引腳以及P3.6與P3.7引腳用來與外部數據存儲器CY7C132交換數據;P1.0、P1.1和P3.4引腳是與A/D轉換器ADC0832連接,控制A/D轉換操作以及讀取轉換結果:P3.2(外部中斷0)引腳與單片機2(V2)的引腳P1.0相互通信。單片機2的I/O引腳的使用情況與單片機1類似。其中特別需要指出的是:單片機2的P1.2引腳連接至CY7C132的BUSY引腳;而P3.0與P3.1是串口通信引腳,連接至MAX232。
        CY7C132是雙口RAM,但是其任意一端的地址線、數據線以及控制線的連接方法與一般RAM幾乎沒有區別,2片單片機與CY7C132的地址線和數據線采用相同的連接方法。以單片機1為例進行說明,CY7C132的內部存儲空間為2KB,因此,其地址空間為0000H~07FFH。單片機的I/O口要提供11根地址線,除去P0口還需占用P2.0、P2.1、P2.2端。該系統設計僅使用單片機AT89S51的外部RAM,因此不存在片選問題。這里采用線選法,P2.3直接與CY7C132的CS相連。
        另外,以下原因,單片機1與單片機2使用了不同頻率的外部晶振:1)單片機AT89S51支持的頻率有限,被選擇的晶振頻率必須符合要求;2)由于AT89S51使用機器周期作為其工作基準,在使用外部振蕩電路的情況下,該單片機是以晶振頻率除以12得到的數值作為機器周期,所以在單片機1需要定時器的情況下,晶振頻率要便于定時器的設置;3)單片機2需要和計算機進行串口通信,晶振頻率要便于串口通信中波特率的設置。因此,單片機1與單片機2的晶振頻率分別選擇了12 MHz和11.059 2 MHz。

        3 系統軟件設計
        該系統軟件設計使用的是匯編語言。匯編語言的優點是:編寫的程序存儲空間小,運行速度快,程序效率高。另外,匯編語言編寫的程序能直接管理和控制硬件設備。匯編語言編寫的程序并不能直接為單片機所使用,必須使用編譯器編譯。本系統使用Keil C5l V7.09評估版。
        3.1 單片機主程序
        單片機1使用內部RAM的20H.1作為A/D轉換標志位,當標志位被置1時,主程序中的A/D轉換子程序不會運行;當該標志位被置0時,A/D轉換子程序才可以執行。單片機1的主程序執行過程,見圖3(a)。單片機2用內部RAM的20H.1作為程序啟動標志位,當標志位被置1時,主程序不會運行;當該標志位被置0時,主程序才可以執行。在主程序開始運行后,從外部數據寄存器中讀入數據,然后關閉串口中斷,通過查詢方式向串口寫入數據,然后再打開串口中斷。單片機2的主程序執行過程,見圖3(b)。

        本文引用地址:http://www.104case.com/article/173059.htm


        3.2 數字濾波子程序
        算術平均值濾波的原理是對于連續采樣的n個數據,尋找一個數值y(k),使該值與采樣值之間誤差的平方和最小:

        式中,y(k)是第k次采樣時,N個采樣值的平均值,X(i)是第i次采樣值。
        算術平均值濾波適用于被測信號在某一數字范圍附近作上下波動的場合。該方法將干擾的影響平攤到每個測量值。采樣數n決定了抗干擾的能力,n越大,抗干擾性能越好,但是,n值過大,系統的靈敏度會降低。算術平均值濾波對周期性干擾有較好的抑制作用,但對脈沖性干擾作用不大。
        中值濾波算法是對某一被測參數連續采樣n次(一般n取奇數)。n次采樣值按照大小排列,取中間值作為本次采樣值。中值濾波算法能有效克服因偶然因素引起的波動干擾。對于溫度、液體表面等變化緩慢的被測參數,能收到良好的濾波效果。中值濾波子程序和算術平均值濾波子程序流程見圖4。



        4 實驗數據
        在實驗過程中,測試平臺的輔助工具包括,可提供±5 V輸出的WJ7103型直流穩壓電源,美國Tektronic公司的AFG3021型函數發生器。首先,信號函數發生器產生直流信號通過信號單元電路板被傳輸到工控機;其次,被測數據通過串口助手顯示并以文本格式(txt)存儲在工控機中;最后,被測數據通過MATLAB軟件以分別以圖像的形式顯示和十進制數的格式記錄。
        在0 V信號輸入的條件下,信號單元的采樣結果(隨機取樣1 000次)見圖5。圖中的(1)(2)(3)分別表示單片機1在沒有使用數字濾波算法,采用中值濾波算法和算術平均值濾波算法的條件下得到的輸出結果。在理想情況下,采樣值應該是0,而記錄的采樣結果與理想值存在誤差。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 海阳市| 阿瓦提县| 德安县| 泗洪县| 西畴县| 建始县| 旺苍县| 公安县| 万安县| 繁昌县| 舟山市| 平定县| 砚山县| 巴南区| 慈溪市| 固原市| 遂宁市| 如皋市| 托里县| 濮阳县| 隆化县| 灵川县| 新源县| 铜鼓县| 龙川县| 嘉黎县| 朝阳县| 确山县| 博野县| 明水县| 济南市| 南和县| 曲靖市| 安泽县| 兰坪| 泽普县| 巴马| 贡嘎县| 勐海县| 霍城县| 资阳市|