基于C語(yǔ)言的RS232串行接口通信實(shí)現(xiàn)
2.2 C語(yǔ)言的串口通信軟件實(shí)現(xiàn)
2.2.1串口通信軟件流程圖

圖2數(shù)據(jù)通信的流程圖
2.2.2 C語(yǔ)言函數(shù)具體實(shí)現(xiàn)串口通信軟件過(guò)程
由于I/O串行通信口的速度遠(yuǎn)遠(yuǎn)低于CPU的速度,在查詢工作方式時(shí),CPU長(zhǎng)時(shí)間處于等待狀態(tài),其效率非常低,不利于CPU的資源利用。解決這一矛盾的有效辦法是采取中斷的通信方式,即當(dāng)通信口自身準(zhǔn)備就緒時(shí),主動(dòng)提出中斷申請(qǐng),一旦CPU響應(yīng)此申請(qǐng),便暫停執(zhí)行的工作,轉(zhuǎn)向中斷服務(wù)子程序,與外設(shè)進(jìn)行數(shù)據(jù)的交換,數(shù)據(jù)交換完成后返回到主程序中的斷點(diǎn)繼續(xù)執(zhí)行未完成的任務(wù),這樣就避免了CPU資源的浪費(fèi)㈨。
為此必須對(duì)異步通信適配器以及中斷控制器進(jìn)行控制。作為系統(tǒng)的外設(shè),異步通信適配器和中斷控制器都有其對(duì)應(yīng)的I/O口地址,所以本文采用C語(yǔ)言函數(shù)庫(kù)中的尋址函數(shù)outportb()和函數(shù)inportb()對(duì)上述芯片進(jìn)行直接讀寫操作。其控制包括對(duì)中斷控制器地址的編程,允許IRQ3,IRQ4中斷,同時(shí)置MODEM控制寄存器地址為有效,這樣即可實(shí)現(xiàn)中斷方式的通信。根據(jù)圖2的串口通信流程圖,其具體實(shí)現(xiàn)串口通信的過(guò)程如下:
1)初始化串口函數(shù)。
參數(shù)說(shuō)明:
ComPortAddr 串口端口地址(coMl口是03F8H COM2口是02F8H)
IntVectNum 中斷處理號(hào)(一般選擇0X0b)
Baud 波特率
Data 數(shù)據(jù)位
STop 停止位
Parity 奇偶校驗(yàn)位
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
交換機(jī)相關(guān)文章:交換機(jī)工作原理








評(píng)論