嵌入式串列埠軟體程式設計預備知識

2021-06-22 18:12:12 字數 3107 閱讀 3353

eia電平—— rs232就採用這種電平,「1」的邏輯電平在-3v~-15v之間 「0」的邏輯電平在+3v~+15v之間。(eia代指「電子工業協會」)

ttl電平—— +5v等價於邏輯"1",0v等價於邏輯"0",這被稱做ttl(電晶體-電晶體邏輯電平),這是計算機處理器控制的裝置內部各部分之間通訊的標準技術。

串列埠通訊是指外設和計算機間,通過資料訊號線 、地線、控制線等,按位進行傳輸資料的一種通訊方式。傳輸過程中,資料在一根資料訊號線上一位一位進行傳輸,每一位資料都佔據乙個固定的時間長度。

串列埠傳輸是二進位制**序列在一條通道上以位(元碼)為單位,按時間順序且按位傳輸的通訊方式。序列傳輸時,傳送端按位傳送,接收端按位接受,同時還要對所傳輸的位加以確認,所以收發雙方要採取同步措施,否則接受端將不能正確區分出所傳輸的資料。

通訊特點:使用的資料線少,在遠距離通訊中可以節約通訊成本,但其傳輸速度比並行傳輸低。 

串列埠的本質功能是作為cpu和序列裝置間的編碼轉換器。當數從cpu經過串列埠傳送出去時,位元組資料轉換為序列的位。在接收資料時,序列的位被轉換為位元組資料。串列埠是系統資源的一部分,應用程式要使用串列埠進行通訊,必須在使用之前向作業系統提出申請要求(開啟串列埠),通訊完成後必須釋放資源(關閉串列埠)。串列埠的本質功能是作為cpu和序列裝置間的編碼轉換器。當數從cpu經過串列埠傳送出去時,位元組資料轉換為序列的位。在接收資料時,序列的位被轉換為位元組資料。串列埠是系統資源的一部分,應用程式要使用串列埠進行通訊,必須在使用之前向作業系統提出申請要求(開啟串列埠),通訊完成後必須釋放資源(關閉串列埠)。

串列埠的本質功能是作為cpu和序列裝置間的編碼轉換器。當數從cpu經過串列埠傳送出去時,位元組資料轉換為序列的位。在接收資料時,序列的位被轉換為位元組資料。串列埠是系統資源的一部分,應用程式要使用串列埠進行通訊,必須在使用之前向作業系統提出申請要求(開啟串列埠),通訊完成後必須釋放資源(關閉串列埠)。

(1)實現資料格式化:因為來自cpu 的是普通的並行資料,所以,介面電路應具有實現不同序列通訊方式下的資料格式化的任務。在非同步通訊方式下,介面自動生成起止式的幀資料格式。在面向字元的同步方式下,介面要在待傳送的資料塊前加上同步字元。 

(2)進行串---並轉換:序列傳送,資料是一位一位序列傳送的,而計算機處理資料是並行資料。所以當資料由計算機送至資料傳送器時,首先把序列資料轉換為並行數才能送入計算機處理。因此串並轉換是串介面電路和的重要任務。 

(3)控制資料傳輸速率:序列通訊介面電路應具有對資料傳輸速率-----波特率進行先擇和控制的能力。 

(4)進行錯誤檢測:在傳送介面電路對傳送的字元資料自動生成奇偶校驗位或其他校驗碼。在接收時,介面電路檢查字元的奇偶校驗或其他檢驗碼,確定是否發生傳送錯誤。 

(5)進行ttl 與eia 電平轉換:cpu 和終端均採用ttl 電平及正邏輯,它們與eia 採用的電平及負邏輯不相容,需在介面電路中進行轉換。

rs-232c是2023年由電子工業協會(eia)公布的標準。該標準的用途是定義資料終端裝置dte(data terminal equipment)與資料通訊裝置dce(data communication equioment)的介面特性。rs-232c是2023年由電子工業協會(eia)公布的標準。該標準的用途是定義資料終端裝置dte(data terminal equipment)與資料通訊裝置dce(data communication equioment)的介面特性。

rs-232c是2023年由電子工業協會(eia)公布的標準。該標準的用途是定義資料終端裝置dte(data terminal equipment)與資料通訊裝置dce(data communication equioment)的介面特性。rs-232c採用非歸零、雙極性編碼,且使用負邏輯規定的邏輯電平:-15~-5v規定為邏輯「1」。+5~+15v規定為邏輯「0」。訊號電平與ttl電平不相容,所以需要電平轉換電路(通常使用max3232轉換)。(1) 字元(幀)格式

rs-232c採用起止式非同步通訊協議,其特點是乙個字元接著乙個字元進行傳輸,並且傳輸乙個字元總是以起始位開始,以停止位結束,字元之間沒有固定的時間間隔要求。其傳輸格式如圖2.4所示,每乙個字元的前面都有一位起始位(低電平,邏輯「0」),字元本身有5~8位資料位,接著字元後面是一位校驗碼(也可以沒有校驗碼),最後是停止位。停止位後面是不定長度的空閒位。停止位和空閒位都規定為高電平(邏輯值「1」),這樣就能保證起始位開始處一定有乙個下跳沿,便於接受方識別。

這種格式是靠起始位和停止位來實現字元的界定或同步的,故稱為起止式協議。沒有統一的時鐘,沒有同步字元,依靠起始位和停止位標識每一幀,傳輸時,資料的地位在前,高位在後。  起始位實際上是作為同步訊號附加進來的,當它變為低電平時,告訴接受方傳輸開始,後面接著是資料位;而停止位則標誌乙個字元的結束。這樣就為通訊雙方提供了何時開始收發、何時結束的標誌。傳輸開始前,收發雙方把所採用的字元格式(包括字元的資料位長度、停止位位數、有無校驗位以及是奇校驗還是偶校驗等)和資料的傳輸速率進行統一規定。傳輸開始後,接收裝置不斷地檢測線路,看是否有起始位到來。當收到一系列的「1」(停止位或空閒位)之後,檢測到乙個下跳沿(由「1」變為「0」),說明起始位出現,起始位經確認後,就開始接收所規定的資料位和奇偶校驗位以及停止位。然後去掉停止位,對資料位進行串並轉換,並且經奇偶校驗無誤後,才算正確地接收到乙個字元。乙個字元接收完畢,接收裝置又繼續測試線路,監視「0」電平的到來和下一位字元的開始,直到全部資料傳輸完畢。

由於rs-232c標準中有兩對硬體握手協議的引線:dtr和dsr、rts和cts,根據應用握手協議的機制不同,可分為3種情況:無硬體握手、dtr和dsr握手、rts和cts握手。

(2) 握手協議分三種:

① 無硬體握手情況

無硬體握手的連線最簡單,只需要3根線,應用比較多。但通訊不可靠,接收緩衝區容易溢位。

② dtr和dsr握手情況

採用dtr和dsr握手進行傳送和接收資料的過程如下(設計算機a接收,計算機b傳送): 若計算機a已經準備就緒,則使dtr有效。計算機b通過採集dsr,得知計算機a已經做好接收資料的準備,可以傳送資料。若計算機a為準備好,則dtr無效,計算機b通過採集dsr,得知計算機a尚未做好接收資料的準備,停止傳送資料。

③   rts和cts握手情況

利用rts和cts握手進行傳送和接收資料的過程如下(設計算機a接收、計算機b傳送):

若計算機a已經準備就緒,則使rts有效。計算機b通過採集cts,得知計算機a已經做好接收資料的準備,可以傳送資料。若計算機a未準備好,則rts無效,計算機b通過採集cts,得知計算機a尚未做好接收資料的準備,停止傳送資料。

嵌入式串列埠

一 使用ads1.2平台設計程式,並具有以下功能 30分 要求 在micro 2440 平台下實現,串列埠輸入字元控制蜂鳴器發聲。當串列埠傳送 a b c d 時,蜂鳴器發出不同的聲音。組合語言,c 彙編混合程式設計都可以 area xie code,readonly entry ldr r13,0...

嵌入式linux串列埠程式設計(二)

com writer.c include uart api.h int main void if set com config fd,115200,8,n 1 0 配置串列埠 dowrite fd,buff,strlen buff while strncmp buff,quit 4 close fd...

嵌入式程式設計

1 interrupt double compute area double radis 1 isr不能返回乙個值。2 isr不能傳遞引數。3 在許多處理器中浮點是不可重入的。4 printf 經常有重入和效能上的問題,所以一般不使用printf 2.volatile 1 volatile的語法和c...