串列埠通訊資料傳送--字元傳送和16進位制傳送--傳送位元組的間隔時間
在計算機中,所有的資料在儲存和運算時都要使用二進位制數表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中儲存時也要使用二進位制數來表示,而具體用哪些二進位制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通訊而不造成混亂,那麼大家就必須使用相同的編碼規則,於是美國有關的標準化組織就出臺了所謂的ASCII編碼,統一規定了上述常用符號用哪些二進位制數來表示.
A在ascii中定義為01000001,也就是十進位制65,有了這個標準後,當我們輸入A時,計算機就可以通過ascii碼知道輸入的字元的二進位制編碼是01000001。而沒有這樣的標準,我們就必須自己想辦法告訴計算機我們輸入了一個A;沒有這樣的標準,我們在別的機器上就需要重新編碼以告訴計算機我們要輸入A。ascii碼指的不是十進位制,是二進位制。只是用十進位制表示習慣一點罷了,比如在ascii碼中,A的二進位制編碼為01000001,如果用十進位制表示是65,用十六進位制表示就是41H
ASCII值 | 控制字元 | ASCII值 | 字元 | ASCII值 | 字元 | ASCII值 | 字元 |
000 | NUL | 032 | (space) | 064 | @ | 096 | ’ |
001 | SOH | 033 | ! | 065 | A | 097 | a |
002 | STX | 034 | " | 066 | B | 098 | b |
003 | ETX | 035 | # | 067 | C | 099 | c |
004 | EOT | 036 | $ | 068 | D | 100 | d |
005 | END | 037 | % | 069 | E | 101 | e |
006 | ACK | 038 | & | 070 | F | 102 | f |
007 | BEL | 039 | ' | 071 | G | 103 | g |
008 | BS | 040 | ( | 072 | H | 104 | h |
009 | HT | 041 | ) | 073 | I | 105 | i |
010 | LF | 042 | * | 074 | J | 106 | j |
011 | VT | 043 | + | 075 | K | 107 | k |
012 | FF | 044 | , | 076 | L | 108 | l |
013 | CR | 045 | - | 077 | M | 109 | m |
014 | SO | 046 | . | 078 | N | 110 | n |
015 | SI | 047 | / | 079 | O | 111 | o |
016 | DLE | 048 | 0 | 080 | P | 112 | p |
017 | DC1 | 049 | 1 | 081 | Q | 113 | q |
018 | DC2 | 050 | 2 | 082 | R | 114 | r |
019 | DC3 | 051 | 3 | 083 | S | 115 | s |
020 | DC4 | 052 | 4 | 084 | T | 116 | t |
021 | NAK | 053 | 5 | 085 | U | 117 | u |
022 | SYN | 054 | 6 | 086 | V | 118 | v |
023 | ETB | 055 | 7 | 087 | W | 119 | w |
024 | CAN | 056 | 8 | 088 | X | 120 | x |
025 | EM | 057 | 9 | 089 | Y | 121 | y |
026 | SUB | 058 | : | 090 | Z | 122 | z |
027 | ESC | 059 | ; | 091 | [ | 123 | { |
028 | FS | 060 | < | 092 | \ | 124 | | |
029 | GS | 061 | = | 093 | 125 | } | |
030 | RS | 062 | > | 094 | ^ | 126 | ~ |
031 | US | 063 | ? | 095 | _ | 127 | DEL |
串列埠傳送一幀資料時,兩個位元組的間隔時間是多少?
波特率:傳送二進位制資料位的速率,習慣上用 baud 表示,即我們傳送一位二進位制資料的持續時間=1/baud。
如果波特率為9600,傳送一個位需要的時間為1/9600s=0.0001042s=0.1042ms,這裡按資料位為8位,停止位為2位,
加起來就是10位,10個位傳送所需的時間為:0.1042*10ms = 1.042ms,如果我要傳送10個位元組的資料,那傳送這10個位元組資料給接收方需要 的時間為:10*1.042ms = 10.42ms,這是算實際的傳送10個位元組的資料所需要的時間。我們在接收方接收資料時可以
把時間再加寬一些,讓它有一點餘量。讓接收方能穩定的把資料從傳送方接手過來,可以加個5ms,或更寬一點10ms,
加上傳送10個位元組所花的時間,就是15ms或20ms。