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