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