單片機與外圍設備,單片機與單片機之間進行通信,通俗點說就是數(shù)據(jù)傳輸,數(shù)據(jù)傳輸?shù)姆绞接卸喾N,我們經(jīng)常用到的就有串口通信、IIC通信、RS232,485,CAN總線等等。目前在中小學實驗室中,學生們操作開源硬件,用到的通信方式以IIC,串口通信居多。今天咱們就先來聊聊串口通信。
單片機的CPU和外界通信時采用的是并行模式,為什么采用并行模式?大家只要稍微一思考就能想出答案。并行通信指的是數(shù)據(jù)(以8位為基數(shù))在傳輸時一次同時發(fā)送8個位,打個比方,這就像8個人同時去打水,每人提一個水桶,那怎樣才能在最短的時間內(nèi)將8個水桶裝滿水呢?那當然是用8個水龍頭同時為8個水桶裝水,每個水龍頭裝一個桶,8個水龍頭相互之間各不影響。單片機的接口與外部設備進行通信時則是采用串行通信模式,所謂串行通信模式,就是數(shù)據(jù)按照順序一位一位的傳輸,數(shù)據(jù)的傳輸具有時間上的先后順序。同樣打個比方,8個人去提水,只有一個水龍頭,這8個人就要一個一個排隊,裝滿一個水桶再裝下一個水桶。很顯然,并行通信比串行通信速度更快。
采用并行通信,由于在同一時間內(nèi)需要同時發(fā)送或接收8個位的數(shù)據(jù),每個數(shù)據(jù)占據(jù)一個數(shù)據(jù)位,就需要8條數(shù)據(jù)線來進行數(shù)據(jù)傳送與接收,在提高傳輸速度的同時犧牲了硬件資源;而采用串行通信,數(shù)據(jù)是一個位一個位的按順序發(fā)送或接收,那就只需要兩條數(shù)據(jù)線就夠了,一條用于發(fā)送數(shù)據(jù),一條用于接收數(shù)據(jù)。數(shù)據(jù)傳輸?shù)乃俣缺炔簧喜⑿型ㄐ?,但是?jié)省了大量的硬件資源。
至此,也許你已經(jīng)對串口通信有了初步認識,但是,還沒結束。我們在應用串口通信時還會遇到一些專業(yè)術語知識,下面我再給大家簡單介紹一下:
1、串口連接。單片機進行串口通信時總是要求實現(xiàn)數(shù)據(jù)的雙向傳輸,即發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。在我們的單片機上你會找到串口通信接口,TXD(Transmit Data)數(shù)據(jù)發(fā)送端口和RXD(Receive Data)數(shù)據(jù)接收端口。單片機在進行串行通信連接時,一方的TX數(shù)據(jù)發(fā)送端要接另一方的RX數(shù)據(jù)接收端;RX數(shù)據(jù)接收端接另一方的TX數(shù)據(jù)發(fā)送端。即你發(fā)我收,我發(fā)你收。當然還要為單片機提供電源,這個就不用多說了吧!
2、波特率(bps)。bits per second,比特/秒。也叫做比特率,只是音譯上的區(qū)別而已。它反應的是每秒進行通訊的位數(shù)。我們經(jīng)??吹?a target="_blank">電腦網(wǎng)絡連接速度XXMbps,即是指每秒鐘處理數(shù)據(jù)的個數(shù)為XX兆位。
3、數(shù)據(jù)模式。這里就要為大家介紹下數(shù)據(jù)位、停止位、校驗位的概念。
數(shù)據(jù)位是衡量通信中實際數(shù)據(jù)位的參數(shù)。當計算機發(fā)送一個信息包時,實際的數(shù)據(jù)不一定全是8位的,標準的值是5、6、7和8位。究竟是幾位取決于實際傳送的信息。我們都知道一個字節(jié)是8個位。標準的ASCII碼是0~127(7位)。而擴展的ASCII碼則是0~255(8位)。如果數(shù)據(jù)使用標準 ASCII碼,那么每個數(shù)據(jù)包就是7個數(shù)據(jù)位。每個數(shù)據(jù)包是指一個字節(jié),包括開始/停止位,數(shù)據(jù)位和校驗位。由于實際數(shù)據(jù)位取決于通信協(xié)議的選取,術語“包”指任何通信的情況。
停止位用于表示一個包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現(xiàn)了小小的時差,導致不同步。因此停止位不僅僅是表示傳輸?shù)慕Y束,它還提供計算機校正時鐘同步的機會。停止位的位數(shù)越多,時鐘校正的程度越大,數(shù)據(jù)傳輸率同時也越慢。
檢驗位是串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。也可以沒有校驗位。對于偶和奇校驗的情況,串口會設置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶數(shù)個或者奇數(shù)個邏輯1。例如,如果數(shù)據(jù)是011,那么對于偶校驗,校驗位為0,保證邏輯1的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位為1,這樣就有3個邏輯1位。高位和低位不是真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備能夠知道一個位的狀態(tài),判斷通信是否受到干擾或者傳輸和接收數(shù)據(jù)是否同步。
一般在默認的情況下為“8N1”模式,即8位數(shù)據(jù)位,無(None)校驗,1位停止位。
相信通過以上介紹,你已經(jīng)對串口通信又有了更深的理解。真正掌握串口通信原理還需要在實踐中不斷探索。
編輯:hfy
-
cpu
+關注
關注
68文章
10896瀏覽量
212520 -
串口通信
+關注
關注
34文章
1627瀏覽量
55630 -
并行通信
+關注
關注
1文章
31瀏覽量
10843
發(fā)布評論請先 登錄
相關推薦
評論