DSA通讯协议
1.DSA-接口規(guī)范
DSA總線是一個(gè)異步,雙向的,內(nèi)部設(shè)計(jì)用于在一組兩個(gè)微處理器之間的通信總線。
它有三個(gè)雙向線:
● DATA -啟動(dòng)同步和數(shù)據(jù)傳輸
● STB -數(shù)據(jù)選通(當(dāng)STB為低電平時(shí)數(shù)據(jù)是有效的)
● ACK -啟動(dòng)同步,數(shù)據(jù)傳輸,確認(rèn)及通信應(yīng)答?
?
2.通訊說(shuō)明
每個(gè)數(shù)據(jù)通信包括三個(gè)階段:
● 開(kāi)始同步 同步發(fā)射器和接收器數(shù)據(jù)傳輸
● 數(shù)據(jù)傳輸 通過(guò)數(shù)據(jù)選通和應(yīng)答信號(hào)傳輸所有的數(shù)據(jù)位。
● 通信應(yīng)答 接收器可以讓發(fā)射機(jī)知道通信是否異常,如果通信沒(méi)有出現(xiàn)錯(cuò)誤,有 可能重復(fù)它,直到它是確定
?
處理器被稱為發(fā)射器,當(dāng)它想傳輸數(shù)據(jù)。它從一個(gè)同步階段開(kāi)始,傳輸數(shù)據(jù),并要求收到最后的通信應(yīng)答。
其他處理器自動(dòng)成為接收器。
?
2.1同步啟動(dòng)?
發(fā)射器拉低數(shù)據(jù)線,讓對(duì)方知道它要發(fā)送一些數(shù)據(jù)。然后它開(kāi)始等待,直到ACK線被拉低接收到一個(gè)來(lái)自接收方確認(rèn)信號(hào),確認(rèn)接受傳輸請(qǐng)求和準(zhǔn)備好接受數(shù)據(jù)。
然后發(fā)送方拉高DATA信號(hào),等待ACK線被拉高,如果ACK被拉高則表示同步結(jié)束,發(fā)送方和接收方都準(zhǔn)備好了數(shù)據(jù)傳輸。
?
有可能兩個(gè)處理器要在同時(shí)傳輸他們的數(shù)據(jù),同時(shí)拉低DATA線然后等待ACK線上的應(yīng)答信號(hào)。因此,有必要在同步開(kāi)始的時(shí)候在軟件中添加超時(shí)發(fā)送。超過(guò)超時(shí)時(shí)間時(shí),伺服處理器,伺服處理器拉高DATA線,然后檢測(cè)用戶處理器是否有發(fā)起同步信號(hào)。如果是,他先接受數(shù)據(jù),然后伺服處理器可以再拉低數(shù)據(jù)線再次傳輸數(shù)據(jù)。
伺服處理器不能通過(guò)同步階段當(dāng)它已經(jīng)有新數(shù)據(jù)要發(fā)送的時(shí)候,舊的數(shù)據(jù)將被覆蓋。
?
2.2數(shù)據(jù)傳輸
在這部分的通信的所有數(shù)據(jù)位都從發(fā)射機(jī)傳送到接收機(jī),根據(jù)位變發(fā)射機(jī)設(shè)置數(shù)據(jù)線被發(fā)送。當(dāng)數(shù)據(jù)線變穩(wěn)定后,發(fā)射機(jī)拉低STB線來(lái)告訴接收機(jī)在數(shù)據(jù)線上的信息是有效的。當(dāng)STB線的低電平狀態(tài)被是識(shí)別后,接收器開(kāi)始讀DATA先的信息。然后接收機(jī)拉低ACK線來(lái)告訴發(fā)送機(jī)數(shù)據(jù)已經(jīng)被讀好了。當(dāng)發(fā)送方檢測(cè)到ACK變低后,將STB腳拉高,當(dāng)接收方檢測(cè)到STB變高后,將ACK拉高,完整的1bit的數(shù)據(jù)就結(jié)束了。
如果伺服處理器不能在(TTRF)傳輸16位數(shù)據(jù),它拉高DATA線和STB線,并拉低ACK線進(jìn)入通信階段。
?
2.3通信應(yīng)答?
總線上的尖峰可能會(huì)導(dǎo)致發(fā)射器和接收器出來(lái)的同步。此時(shí)接收器應(yīng)該已經(jīng)收到指定的位計(jì)數(shù)準(zhǔn)確,如果接收方的位計(jì)數(shù)器不等于這個(gè)指定的計(jì)數(shù)時(shí),接收器清除數(shù)據(jù)線,否則此線保持高,在此之后,接收器清除STB線。這意味著對(duì)于發(fā)射機(jī),該比較結(jié)果是在DATA線上有效。發(fā)射器讀取數(shù)據(jù)線,然后設(shè)置ACK線高。這意味著為接收器的數(shù)據(jù)線是由發(fā)送器讀取。當(dāng)接收器識(shí)別到的ACK線為高時(shí),它設(shè)置兩者的DATA和STB線高。現(xiàn)在,所有的通信都完成,在DSA-總線再次空閑。如果通信沒(méi)有發(fā)生錯(cuò)誤,變送器應(yīng)重復(fù)(僅一次)進(jìn)行最后一次通信開(kāi)始同步階段
如果接收方不在范圍內(nèi)TCOM通信應(yīng)答階段作出適當(dāng)?shù)姆磻?yīng),伺服處理器(=變送器)將此解釋為一個(gè)通信錯(cuò)誤,并設(shè)置高的所有行。
?
在使用該通訊協(xié)議的時(shí)候,需要注意一下幾點(diǎn):?
1.在總線空閑的時(shí)候,用戶處理器和伺服處理器都處于讀數(shù)據(jù)的狀態(tài)。當(dāng)某一方需要發(fā)送數(shù)據(jù)的時(shí)候,再把它設(shè)置為寫狀態(tài)。2.在同步或是數(shù)據(jù)傳輸?shù)碾A段,如果超時(shí)沒(méi)有接到相應(yīng)的應(yīng)答,發(fā)送方應(yīng)將狀態(tài)轉(zhuǎn)為讀狀態(tài)。主要是為了處理雙方同時(shí)需要傳輸數(shù)據(jù)
3.DSA總線是一個(gè)異步,雙向的,內(nèi)部設(shè)計(jì)用于在一組兩個(gè)微處理器之間的通信總線。 4.每傳輸一個(gè)比特位都需要再同步。且每次只能傳輸一個(gè)比特位。?
?
轉(zhuǎn)載于:https://www.cnblogs.com/WenLee/p/4019495.html
總結(jié)
- 上一篇: php组装json数据包,php封装js
- 下一篇: Latex公式空格输入