dsa三線通信協議

DSA通訊協議:
主機:EM78P372N
從機:3518E
1.主機通訊申請:主機在Data爲1時,將data=0,並檢測ack是否爲0(從機響應)
2.從機檢測通訊:從機在閒時檢測data是否爲0,如果爲0,表示有通訊申請。
3.從機響應通訊申請:從機寫ack=0表示接受申請。
4.通訊申請完成:從機響應申請之後,檢測data是否爲1,如果爲1,表示同步完成,從機寫ack=1表示準備接受數據了。
5.主機檢測ack是否爲1,表示可以發送數據了。

6.主機發數據到data
7.主機將stb=0,通知從機數據已經發送
8.從機從data讀數據
9.從機寫ack=0,表示數據已經收取
10.主機檢測ack=0
11.主機寫stb=1,表示準備發送第二個數據
12.從機檢測stb是否爲1,表示從機準備接受第二個數據
13.從機寫ack=1表示準備接受數據
14.主機發現ack=1,準備發送第二個數據。

重複上述傳輸數據

主機寫ack=0
從機等待ack=0,如果ack=0,寫stb=0
主機等待stb=0,並寫ack=data=1
從機檢測ack=1,
從機寫stb=1,準備下一輪通訊

從機端程序流程:
開始:
檢測data是否爲0
data爲0,則寫ack=0,並檢測data是否爲1
如果data=1,寫ack=1,可以開始接受數據了。

數據:
等待stb爲0,讀取數據,寫ack=0
等待stb=1,寫ack=1
等待stb爲0開始接受第二個數據。

從機接受完數據後,寫ack爲1,stb應該還是1,應該stb爲0表示可以讀取數據。

結束:
檢測ack=0,寫stb=0,等待ack爲1,寫stb=1,通訊結束。

引腳:5-2 data 輸入模式,
5-3 ack 輸出模式,
0-5 stb

主機端流程(主機3518E主動發送數據到從機單片機):
(1)主機檢測data是否爲1,如果等於1,表示DSA總線空閒,如果爲0表示DSA總線忙.
(2)主機檢測到data爲1,開始通信申請建立.

(3)建立通信:主機寫data=0,表示申請與從機通信
(4)主機檢測ack是否爲0,爲0表示從機對通信做出應答.
(5)主機檢測到ack=0後,寫data=1.
(6)主機寫完data後,檢測ack是否爲1,如果ack=1,表示從機應答,通信申請已經建立.

(7)開始數據傳輸過程
(8)主機寫第一個數據到data,並寫stb=0,通知從機數據發送完成.
(9)主機檢測ack是否爲0,ack=0表示從機讀取完成
(10)主機檢測到ack=0後,主機寫stb=1,表示告訴從機申請發第二個數據
(11)主機檢測ack是否爲1,如果ack=1,表示從機應答做好準備,可以發送第二個數據了.
(12)主機發第二個數據

(13)數據發送完成
(14)完成步驟12後,主機不想發送數據了,此時主機主動結束通信
(15)主機寫ack=0,並檢測std是否爲0
(16)主機檢測到stb=0,主機寫ack=data=1
(17)主機等待stb爲1,如果stb=1,此時通信結束.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章