新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于I2C總線數(shù)據(jù)寫入器的設(shè)計(jì)

基于I2C總線數(shù)據(jù)寫入器的設(shè)計(jì)

作者: 時(shí)間:2012-02-03 來源:網(wǎng)絡(luò) 收藏

(1) PC方的線程

流程見圖3。在線程被創(chuàng)建后,它將向MCU發(fā)送寫命令CMD_WRITE,然后等待MCU的回應(yīng)RSP_WRITEREADY。成功收到該回應(yīng)后,寫線程將以CMD_WRITE為命令向MCU發(fā)送,每發(fā)送一組,寫線程都會(huì)等待MCU回應(yīng)RSP_WRITTEN,成功收到這個(gè)回應(yīng)后,寫線程繼續(xù)發(fā)送后面的完成時(shí),寫線程發(fā)送寫入結(jié)束命令CMD_OVER,并等待MCU回應(yīng)RSP_FIN以確認(rèn)完成了寫操作。成功收到此回應(yīng)后,將彈出提示。

20.jpg


寫入線程與界面線程的通信通過向界面線程發(fā)消息來實(shí)現(xiàn)。寫入線程可發(fā)如下的消息:WM_ _WRITEOVER,WM_ _BLOCKFINISH,WM_ _COMMFAILED。
WM_ _WRITEOVER消息提示界面線程寫入已經(jīng)結(jié)束。這時(shí)界面線程啟用校驗(yàn)和讀出按鈕,禁用寫入按鈕,向消息框里加入一條寫入完成的消息。
WM_ _BLOCKFINISH提示界面線程一個(gè)塊 操作已經(jīng)完成,界面線程在接收到這條消息后設(shè)置進(jìn)度條,以顯示當(dāng)前的進(jìn)度。
WM_ _COMMFAILED提示界面線程通信失敗,讀出按鈕可用,寫入不可用。

(2) PC方的讀出線程

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

21.jpg

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

6 結(jié)束語

以上介紹了從PC向的EEPROM寫入數(shù)據(jù)的基本方法,它既可以經(jīng)擴(kuò)充后自成一個(gè)系統(tǒng),比如文本閱讀器,也可以作為模塊用在其他系統(tǒng)中。對(duì)于時(shí)序的模擬代碼則可以當(dāng)成通用程序使用。

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


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉