作者kiesoIFRS (kieso)
看板Electronics
標題[問題] 串列傳輸 需要同步時脈嗎
時間Thu Sep 10 22:25:52 2015
看資料說RS232要設定相同的bps
但既然是非同步, 為何要有相同的傳輸速度呢?
我意思是, 要設定相同的bps, 是因為RS232的規定嗎?
還是所有的非同步串列傳輸, 都要使用相同的時脈呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.183.44
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Electronics/M.1441895155.A.66F.html
1F:推 a22326284: 應該是為了能在對的時間抓到隊的資料吧 09/11 00:12
2F:→ a22326284: 同步仰賴CLK來SAMPING 但非同步沒CLK 所以收發時間要一 09/11 00:13
3F:→ a22326284: 致吧 09/11 00:13
4F:→ wads90828: 我沒記錯的看 要看是同步還是非同步 如果同步的話 會共 09/11 11:24
5F:→ wads90828: 用clk 例如spi 向uart沒有共用clk 那就要雙方規定一個 09/11 11:25
6F:→ wads90828: 傳輸速率 09/11 11:25
7F:→ wads90828: 拿我以前實驗室學長舉例來說好了 a裝置傳輸假設是9600B 09/11 11:29
8F:→ wads90828: PS b裝置卻是4800BPS 這時就會雙方資料不同步 會有掉 09/11 11:30
9F:→ wads90828: 資料的問題 有錯的話麻煩糾正謝謝 09/11 11:30
10F:推 sss22213: 沒記錯的話,spi,I2c是由master決定CLK 09/11 13:14
11F:推 sss22213: uart因為沒有由某端決定CLK,所以資料傳送接收端需要一 09/11 13:16
12F:→ sss22213: 樣的速度 才不會lose 09/11 13:16
13F:→ kiesoIFRS: 如果我每傳一個位元,就一直等,等對方取走,才再傳下 09/11 18:55
14F:→ kiesoIFRS: 一個位元。這樣不是也不會lose嗎? 09/11 18:55
15F:→ Schottky: 對方可能根本沒收到,要取走什麼? 09/11 19:11
16F:→ Schottky: 你說的是 UART buffer (SBUF) 的功能,發送端只會 busy 09/11 19:12
17F:→ Schottky: 到字元經由 UART 線路送出後就釋放 buffer 讓你寫入下一 09/11 19:13
18F:→ Schottky: 個字元,並不能向你保證對方有收到。 09/11 19:14
19F:→ kiesoIFRS: 短路到對方的高or低電位 這樣不就收到了??? 09/11 19:34
20F:推 a22326284: 如果這樣設計 除了RTX 還要再多個判斷的腳位 09/11 20:29
21F:→ a22326284: 同樣為3隻腳的話 就乾脆就直接用SPI 或I2C了吧 09/11 20:30
22F:→ a22326284: P.S. I2C只要2隻 更省I/O 09/11 20:30
23F:→ a22326284: 如果沒說錯 現在IC的介面都內建了吧 因此應該無法控制 09/11 20:32
24F:→ a22326284: 頂多只能控制他 傳送 接收 速度 之類的東西 09/11 20:32
25F:→ a22326284: 若要達到你上述的要求 可能要自己寫 並用GPIO來實現吧 09/11 20:33
26F:推 sss22213: 如果連續兩個0或1呢?uart兩個位元間沒有可以辨別的方 09/11 20:37
27F:→ sss22213: 式吧 09/11 20:37
28F:→ kiesoIFRS: 就是~每次自己的動作完成時, 要先跟對方說, 才換對方動 09/11 20:42
29F:→ kiesoIFRS: 作, 對方動作完, 也要先跟我說, 才換我動作, 09/11 20:42
30F:→ kiesoIFRS: (因為我也是有想到連續0或1的狀況) 09/11 20:44
31F:→ kiesoIFRS: a22326284大~我在想是不是因為232是用封包方式, 每個封 09/11 20:46
32F:→ kiesoIFRS: 包是一次連丟好幾個bit, 所以主要這個部份才有同步需要 09/11 20:47
33F:→ kiesoIFRS: 我的問題是基於想了解原理@@ 不是基於想改善什麼的@@.. 09/11 20:51
34F:推 a22326284: 任何的傳輸都是一次丟很多BIT 但如何能快速且不掉資料 09/11 21:04
35F:→ a22326284: 同步 就有CLK可以當依靠 來避免調資料 09/11 21:04
36F:→ a22326284: 而非同步 就要設定相同速度 我丟時你收 才能避免丟包 09/11 21:05
37F:→ a22326284: 如果要舉例 就好像兩台車 一個30KMH 一個100KMH 09/11 21:05
38F:→ a22326284: 30KMH 丟東西給100KMH的車 因為開太快 根本接不到東西 09/11 21:06
39F:→ a22326284: P.S 以上只是舉例 恩.... 簡單說就是為了避免錯的資料 09/11 21:07
40F:→ a22326284: 不過我記得非同步有所謂的起始&停止位元 09/11 21:09
41F:→ a22326284: DATA FRAME應該是 START bit-data-PARITY bit-END bit 09/11 21:10
42F:→ a22326284: 如有觀念不對 還請各位大大指教 :D 09/11 21:11
43F:推 smtmike: 請多多思考各方面的原理 再列舉問題點 弄懂時序同步條件 09/12 06:13
44F:→ smtmike: 提問效率自然很高 只想聽自己能力能懂的答案只是浪費大家 09/12 06:16
45F:推 ViewMoon: 不惜成本的話,不同時脈的非同步 UART 的確可以作 09/12 19:32
46F:→ ViewMoon: 歷史上也只有某廠商作過一次而已...,但 cost down 嘛 09/12 19:33
47F:推 DRQX: 文字認知的問題 09/14 13:19
48F:→ yudofu: 非同步跟同步指的不是兩者中間傳輸的protocol、而是載入資 09/15 03:37
49F:→ yudofu: 料的時候不必依照固定同時脈於固定周期丟資料,讓兩邊透過 09/15 03:38
50F:→ yudofu: 溝通的機制來依照"傳輸"的時脈來丟東西、這樣兩邊就可以不 09/15 03:39
51F:→ yudofu: 同的頻率運作,跟傳輸的方式有沒有clock或者定時傳輸根本 09/15 03:40
52F:推 yudofu: 關係,不要把"非同步傳輸"跟兩邊的時脈有沒有相同弄在一起 09/15 03:44