基于CPLD的RS-232串口通信實現
在邏輯接收模塊中的重點是握手環(huán)節(jié),它體現了PC機與CPLD相互對話的關鍵,后面兩者的互相通信都是基于此而建立的。應用上述思路設計的握手環(huán)節(jié)時序仿真如圖5所示。本文引用地址:http://butianyuan.cn/article/190717.htm
如圖所示當char接收寄存器通過Rxd接收到一個字符信息后發(fā)出char_ok信號,經邏輯控制模塊得知是握手信息FF后,觸發(fā)握手成功talk信號,并在下一時鐘上升沿Txd從空閑狀態(tài)的高電平“1”變?yōu)槠鹗嘉?ldquo;0”準備發(fā)送反饋信息給PC機。
3.4 發(fā)送器
發(fā)送器在接收邏輯處理模塊給出的命令后發(fā)送相應的數據給PC機。發(fā)送內容主要包括:數據正確或握手成功信息DD,示意PC機繼續(xù)下一步操作;數據重發(fā)或握手失敗CC,示意PC機重新發(fā)送數據;以及PC機欲從嵌入式系統中讀出的數據。
4 實驗驗證
工程設計的某嵌入式系統要求PC機向CPLD發(fā)送數據。CPLD選用ATREL公司的MAX7000系列芯片EPM7128SLC84-15。芯片擁有2 500個可使用門陣列、128個宏單元、8個邏輯陣列塊、84個用戶I/O接口。CPLD的IO操作電平是TTL電平,通過MAX232電平轉換芯片將PC機串口電平轉換為TTL電平,就建立起了串口通信的電氣基礎。PC機上擁有VC++編寫的數據下載程序,波特率為9600 bit/s,每個數據幀含1位起始位,8位數據位,無校驗位,1位停止位。通信數據格式用上文提到的和校驗數據格式,以數據包為單位發(fā)送,如圖6所示。
從實驗結果可看到PC機每發(fā)送一個完整的15 Byte數據包,CPLD回復握手成功和數據校驗正確,表明設計可行。
5 結束語
本文從工程設計實際出發(fā),沒有選取通用的UART芯片,通過分析異步通信中UART的結構特點,運用CPLD的豐富資源和一些工程技術制作了自定義通信數據包格式的串口通信模塊。通過與PC機上數據傳輸程序聯試,實現了信息的傳輸和人機互動,證明設計方案的正確。如今嵌入式技術應用十分廣泛而且市場需求很廣闊,PC機與嵌入式系統的通信實現了人機互動使系統功能更加強大。研究對增強嵌入式系統操作性有重要意義。
評論