arm linux串口控制led,通信程序设计 - Linux下ARM和单片机的串口通信设计
3 通信程序設計
ARM 與單片機的串口通信程序包括兩方面: 一方面是作為上位機的ARM 的串口通信程序,另一方面是作為下位機的單片機的串口通信程序。在通信之前必須制定合理的通信協議以保證通信的可靠性和成功率。現約定雙方通信協議如下:
( 1) 波特率為9600 bit /s,幀格式為1 - 8 - N - 1( 1 位起始位,8位數據位,無奇偶校驗,1位停止位) ;( 2) 由于上位機ARM 的速度遠遠高于下位機單片機的速度,所以采用上位機主動聯絡,下位機等待的方式。在數據傳送前ARM 先發送聯絡信號/0xaa,單片機收到后回答一個/0xbb,表示可以發送,否則繼續聯絡;( 3) 單片機端可以有中斷和查詢方式收發串口數據。本文采用中斷方式;( 4) ARM 處理器s3c2440 采用UART1 和單片機通信,UART0 則作為s3c2440 終端控制臺。
3.1 上位機ARM 的通信程序設計
由于s3c2440 移植了定制和裁剪后的Linux2.6.32內核的操作系統,對串口的操作采用上述的Linux 下串口操作方法,程序流程圖如圖2 所示。
3.2 下位機單片機的通信程序設計
選用C8051F021 的定時器T1 作為波特率發生器,晶振采用11.0592 MHz,定時器工作在方式2,計數初值為0xfd,串口工作在串行方式1( 1 - 8 - N - 1) ,采用中斷方式收發數據。
4 結束語
隨著近年來嵌入式Linux 在國內的應用范圍日益壯大,基于ARM 平臺的嵌入式Linux 設備也將會越來越多地用在數據采集中作為上位機對數據進行處理、顯示、存儲、發送。本文所介紹方案適用于大多數場合Linux 下ARM 和單片機的串口通信設計,設計人員只需根據自己的實際需要修改或重新制定通信協議即可。另外需要注意的是由于上位機ARM 的速度比單片機快很多,所以一次不能發送過多的數據,否則極有可能使發送緩沖區溢出而出現數據丟失的現象,開發人員要根據通信雙方設備的狀況選擇合適的幀長度,以達到最佳的傳輸狀態。
總結
以上是生活随笔為你收集整理的arm linux串口控制led,通信程序设计 - Linux下ARM和单片机的串口通信设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux驱动开发音频设备驱动,linu
- 下一篇: Linux ss 热点,在Linux系统