串列傳輸的困惑 |
答題得分者是:taishyang
|
loveforme
一般會員 發表:22 回覆:39 積分:22 註冊:2009-03-24 發送簡訊給我 |
我的問題是這樣的....
我想要讓兩顆8051做通訊,通訊的橋樑是使用8051上的RXD跟TXD。 可是!我要傳輸的數值是大於256(十進位)的數值... 所以我想說分成兩組位元組個別傳送~ 但就會產生另一個問題,到底要如何讓接收端的晶片知道 這兩組位元組哪一組是高位元組哪一組是低位元組?? 此外還有...如果分批傳送如果傳送速度太快,導致接收端資料處理太慢讓SBUF塞車的話那怎麼辦? 那該如何讓傳送端的晶片之道接收端正在塞車呢?? 我本來是想說利用ASCII的編碼傳輸 假設先傳輸"A" 就表示這是高位元組 在傳輸高位元組過去 接著在傳輸"B" 表示這是低位元組 在把低位元組傳過去 總共傳輸四次... 可是晶片會把"A"當成是數字嗎??? 好困惑喔...有大大可以為我解惑嗎??? |
ererer40
初階會員 發表:37 回覆:91 積分:45 註冊:2008-05-02 發送簡訊給我 |
|
loveforme
一般會員 發表:22 回覆:39 積分:22 註冊:2009-03-24 發送簡訊給我 |
|
ererer40
初階會員 發表:37 回覆:91 積分:45 註冊:2008-05-02 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
MCU只知道收到的是0x00,看user要將0x00定義成字元or資料
通常傳輸資料時都會去定一個協定,例如 [header] [data len] [data0] [data1] ... [dataN] [check sum] 兩邊就可以依照這協定來溝通 ===================引 用 loveforme 文 章=================== 同樣都是8bit的位元組 晶片如何分辨這是指令、還是數據資料呢? 例如假設我傳送的bit是0x00 那接收的晶片如何知道這是ASCII的空字元(Null),還是數據為0的資料呢?? |
loveforme
一般會員 發表:22 回覆:39 積分:22 註冊:2009-03-24 發送簡訊給我 |
那我可以設計讓晶片對話嚕?
例如: A MCU: 請問B MCU有空嗎?(緩衝區是否尚有空間) B MCU: 回答 Y (ASCII) 表示有空 ,回答N表示沒空 A MCU: 持續等待B MCU 回答Y ... 等到Y答案之後傳送 [header] [data len] [data0] [data1] ... [dataN] [check sum] B MCU: 在進行解碼的工作.... 這樣的想法是否還有其他的缺陷呢?? ===================引 用 taishyang 文 章=================== MCU只知道收到的是0x00,看user要將0x00定義成字元or資料 通常傳輸資料時都會去定一個協定,例如 [header] [data len] [data0] [data1] ... [dataN] [check sum] 兩邊就可以依照這協定來溝通 |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
是不是byte不重要,重要的是傳送端與接收端的協議
[header]主要是指傳送的命令 [check sum]是用來驗證packet的正確性,最常用就是0xff-所有欄位的總合,也可以用CRC之類的方式 至於要怎麼溝通是由開發者自行設計,只要傳送端跟接收端協議好即可 ===================引 用 loveforme 文 章=================== 那我可以設計讓晶片對話嚕? 例如: A MCU: 請問B MCU有空嗎?(緩衝區是否尚有空間) B MCU: 回答Y (ASCII) 表示有空 ,回答N表示沒空 A MCU: 持續等待B MCU 回答Y ... 等到Y答案之後傳送 [header] [data len] [data0] [data1] ... [dataN] [check sum] B MCU: 在進行解碼的工作.... 這樣的想法是否還有其他的缺陷呢?? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |