新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于I2C總線數據寫入器的設計

        基于I2C總線數據寫入器的設計

        作者: 時間:2012-02-03 來源:網絡 收藏

        (1) PC方的線程

        流程見圖3。在線程被創建后,它將向MCU發送寫命令CMD_WRITE,然后等待MCU的回應RSP_WRITEREADY。成功收到該回應后,寫線程將以CMD_WRITE為命令向MCU發送,每發送一組,寫線程都會等待MCU回應RSP_WRITTEN,成功收到這個回應后,寫線程繼續發送后面的完成時,寫線程發送寫入結束命令CMD_OVER,并等待MCU回應RSP_FIN以確認完成了寫操作。成功收到此回應后,將彈出提示。

        20.jpg


        寫入線程與界面線程的通信通過向界面線程發消息來實現。寫入線程可發如下的消息:WM_ _WRITEOVER,WM_ _BLOCKFINISH,WM_ _COMMFAILED。
        WM_ _WRITEOVER消息提示界面線程寫入已經結束。這時界面線程啟用校驗和讀出按鈕,禁用寫入按鈕,向消息框里加入一條寫入完成的消息。
        WM_ _BLOCKFINISH提示界面線程一個塊 操作已經完成,界面線程在接收到這條消息后設置進度條,以顯示當前的進度。
        WM_ _COMMFAILED提示界面線程通信失敗,讀出按鈕可用,寫入不可用。

        (2) PC方的讀出線程

        流程見圖4。在讀出線程被創建后,它將向MCU發送寫命令CMD_READ,然后等待MCU的回應RSP_READREADY。成功收到回應后,讀線程將發送CMD_READ命令到MCU,并接收MCU返回的數據。成功收到數據后,讀線程檢查第一個字節是否為RSP_READ。若是,則保存收到數據,然后再次發出CMD_READ命令。如此反復,直到512字節(32個塊)全部完成。

        21.jpg

        讀出線程與界面線程的通信也是通過向界面線程發消息來實現的。讀出線程可發如下的消息:WM__REA DOVER,WM__BLOCKFINISH,WM_ _COMMFAILED。其中后兩個消息的意義和寫線程所發的消息意義一樣,所做的工作也是一樣的。WM_ _READOVER提示界面線程讀出已經完成,界面線程收到這條消息后,將在讀出開始時被禁用的讀出按鈕設為可用,清除進度條并在消息框里加入一條讀出完成的消息。

        6 結束語

        以上介紹了從PC向的EEPROM寫入數據的基本方法,它既可以經擴充后自成一個系統,比如文本閱讀器,也可以作為模塊用在其他系統中。對于時序的模擬代碼則可以當成通用程序使用。

        參考文獻
        [1] 李群芳. 單片微型計算機與接口技術(第2版). 北京:電子工業出版社,2005
        [2] Jim Beveridge. Multithreading Applications in Win32 Pearson Education


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平潭县| 德令哈市| 虎林市| 保康县| 山西省| 汉源县| 西吉县| 启东市| 井研县| 西充县| 南华县| 雅江县| 桂阳县| 禹州市| 睢宁县| 博客| 八宿县| 方城县| 泽州县| 金沙县| 嘉禾县| 唐海县| 兴文县| 辽阳县| 酒泉市| 金湖县| 大邑县| 牡丹江市| 百色市| 方山县| 京山县| 安康市| 贵南县| 琼中| 南开区| 吐鲁番市| 奉新县| 栖霞市| 当涂县| 奉贤区| 靖宇县|