痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 4922|回復: 5

[求助] 串列傳輸的困惑...

[複製鏈接]
發表於 2009-10-19 00:47:53 | 顯示全部樓層 |閱讀模式
我的問題是這樣的....
我想要讓兩顆8051做通訊,通訊的橋樑是使用8051上的RXD跟TXD。
可是!我要傳輸的數值是大於256(十進位)的數值...
所以我想說分成兩組位元組個別傳送~
但就會產生另一個問題,到底要如何讓接收端的晶片知道
這兩組位元組哪一組是高位元組哪一組是低位元組??
此外還有...如果分批傳送如果傳送速度太快,導致接收端資料處理太慢讓SBUF塞車的話那怎麼辦?
那該如何讓傳送端的晶片之道接收端正在塞車呢??

我本來是想說利用ASCII的編碼傳輸
假設先傳輸"A" 就表示這是高位元組 在傳輸高位元組過去
接著在傳輸"B"   表示這是低位元組  在把低位元組傳過去
總共傳輸四次...
可是晶片會把"A"當成是數字嗎???
好困惑喔...有大大可以為我解惑嗎???
發表於 2009-10-20 12:58:33 | 顯示全部樓層
這是通訊協定問題.
就電子信號而言,通訊只是高低電位的變化,是人制定出信號組合的意義,對於控制器通訊也是一樣,必需要事先定出規則,雙方控制器才能交談,發言權,交談內容,釋出發言權等等...有很多階層的主題,當然微控器因為要交通的資料數量小及有一定的規則,要完成的程式較少,尚有機會完成,不需使用作業系統.
請假想兩個人用無線電通話時,只有一個單向的頻道,雙方要如何去溝通及確認?
如果能用最簡單而合理的方法完成規畫後,需有足夠的程式編寫能力及充足的工作時數方能完成.
發表於 2009-12-15 18:17:05 | 顯示全部樓層
有點時日了. 不知道您找到方法了沒.

串列傳輸只是一種傳輸的方法.
傳輸的過程中, data 個別代表什麼意思, 怎麼運用, 就是協定的部份. 只要兩邊講好. 就可以了.

比如說您說的第一個 byte 是 low byte. 第二個 byte 是 high byte.
傳出去的這端按照這樣子傳出去. 接收的那端也照這樣子解出來. 就完成了整個通訊.
發表於 2010-1-26 10:13:56 | 顯示全部樓層
基本上Protocol (通訊協定) 可以當做是通訊點彼此溝通的語言, 不管是"A" 或"B", 只要雙方認定好了, 彼此看到的資料也才有意義, 自然就有通訊默契! (猶如彼此約定好的暗語, 密碼)
先定義 Protocol 程式才能繼續寫下去!
發表於 2010-2-22 22:49:45 | 顯示全部樓層
我目前使用到的定義會類似像以下這樣:
1.每個封包有幾個byte,
最少兩byte 像"資料1","資料2"。
或者有三個byte包含"開頭碼","資料1","資料2"。
或者有四個byte包含"開頭碼","資料1","資料2","結束碼"。
或者有五個byte包含"開頭碼","資料1","資料2","CheckSum","結束碼"。

2.每個封包裡每byte的時間間隔。

3.不同封包的時間間隔多久。

4.有無回饋(回應,ACK)等

以上四個條件就可以構成簡單的通訊協定了。
發表於 2011-1-2 22:20:07 | 顯示全部樓層
送收兩端同步問題也要注意.
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-4-23 04:39 PM , Processed in 0.065292 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.