一種單片機(jī)i/o口模擬串行通信方法
【專利說明】
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種單片機(jī)I/O 口模擬串行通信方法的技術(shù)領(lǐng)域。
【【背景技術(shù)】】
[0002]目前普遍采用的MCS51和PIC系列單片機(jī)通常只有一個(gè)(或沒有)UART異步串行通信接口,在應(yīng)用系統(tǒng)中若需要多個(gè)串行接口(例如在多機(jī)通信系統(tǒng)中,主機(jī)既要和從機(jī)通信又要和終端通信)的情況下,通常的方法是擴(kuò)展一片8251或8250通用同步/異步接收發(fā)送芯片(USART),需額外占用單片機(jī)I/O資源。
【
【發(fā)明內(nèi)容】
】
[0003]本發(fā)明的目的就是解決現(xiàn)有技術(shù)中的問題,提出一種單片機(jī)I/O 口模擬串行通信方法,可在單片機(jī)的最小應(yīng)用系統(tǒng)中實(shí)現(xiàn)與兩個(gè)以上串行接口設(shè)備的多機(jī)通信。
[0004]為實(shí)現(xiàn)上述目的,本發(fā)明提出了一種單片機(jī)I/O 口模擬串行通信方法,依次包括以下步驟:
[0005]a)硬件連接:單片機(jī)通過普通I/O 口與PC系列微機(jī)RS232串行口實(shí)現(xiàn)通信的硬件接口電路連接,89C51單片機(jī)的輸入、輸出接口均采用TTL電平,TTL電平到RS232串行口之間電平的轉(zhuǎn)換采用轉(zhuǎn)換接口芯片實(shí)現(xiàn)電平轉(zhuǎn)換已達(dá)到配對的目的,轉(zhuǎn)換接口芯片用單電壓實(shí)現(xiàn)與RS232的第一接口邏輯和第二接口邏輯之間的電平轉(zhuǎn)換;
[0006]b)軟件設(shè)計(jì):89C51單片機(jī)的第一接口和第二接口分別模擬串行通信的發(fā)送和接收,第一接口和第二接口的程序主要由INPUT發(fā)送子程序和OUTPUT接收子程序組成,第一接口和第二接口的通信速率1200bit/s,幀格式為N.8.1 ;
[0007]c)通信實(shí)現(xiàn):第一接口發(fā)送時(shí),先發(fā)送一個(gè)起始位即低電平,接著按低電平在先的順序發(fā)送8位數(shù)據(jù),最后發(fā)送停止位即高電平;第二接口接收時(shí),先判斷第二接口接的收端口是否有起始的低電平出現(xiàn),如有則按低位在先的順序接收8位數(shù),最后判斷第二接口是否有停止的高電平出現(xiàn),如有則完成一個(gè)數(shù)據(jù)接收,否則繼續(xù)等待,直到接收到高電平。
[0008]在上述的單片機(jī)I/O 口模擬串行通信方法中,所述步驟a)中轉(zhuǎn)換接口芯片采用MAXIM公司的MAX232標(biāo)準(zhǔn)RS232轉(zhuǎn)換接口芯片。
[0009]在上述的單片機(jī)I/O 口模擬串行通信方法中,所述步驟a)中轉(zhuǎn)換接口芯片的單電壓為5V,第一接口邏輯上的電壓為-3?15V,第一接口邏輯上的電壓為+3?15V。
[0010]本發(fā)明的有益效果:本發(fā)明可在單片機(jī)的最小應(yīng)用系統(tǒng)中實(shí)現(xiàn)與兩個(gè)以上串行接口設(shè)備的多機(jī)通信,能夠充分利用單片機(jī)的資源,在無需占用單片機(jī)的額外資源的前提下能可靠地傳送和接收數(shù)據(jù)。
【【具體實(shí)施方式】】
[0011]本發(fā)明一種單片機(jī)I/O 口模擬串行通信方法,依次包括以下步驟:
[0012]a)硬件連接:單片機(jī)通過普通I/O 口與PC系列微機(jī)RS232串行口實(shí)現(xiàn)通信的硬件接口電路連接,89C51單片機(jī)的輸入、輸出接口均采用TTL電平,TTL電平到RS232串行口之間電平的轉(zhuǎn)換采用轉(zhuǎn)換接口芯片實(shí)現(xiàn)電平轉(zhuǎn)換已達(dá)到配對的目的,轉(zhuǎn)換接口芯片用單電壓實(shí)現(xiàn)與RS232的第一接口邏輯和第二接口邏輯之間的電平轉(zhuǎn)換;
[0013]b)軟件設(shè)計(jì):89C51單片機(jī)的第一接口和第二接口分別模擬串行通信的發(fā)送和接收,第一接口和第二接口的程序主要由INPUT發(fā)送子程序和OUTPUT接收子程序組成,第一接口和第二接口的通信速率1200bit/s,幀格式為N.8.1 ;
[0014]c)通信實(shí)現(xiàn):第一接口發(fā)送時(shí),先發(fā)送一個(gè)起始位即低電平,接著按低電平在先的順序發(fā)送8位數(shù)據(jù),最后發(fā)送停止位即高電平;第二接口接收時(shí),先判斷第二接口接的收端口是否有起始的低電平出現(xiàn),如有則按低位在先的順序接收8位數(shù),最后判斷第二接口是否有停止的高電平出現(xiàn),如有則完成一個(gè)數(shù)據(jù)接收,否則繼續(xù)等待,直到接收到高電平。
[0015]在上述的單片機(jī)I/O 口模擬串行通信方法中,所述步驟a)中轉(zhuǎn)換接口芯片采用MAXIM公司的MAX232標(biāo)準(zhǔn)RS232轉(zhuǎn)換接口芯片。
[0016]在上述的單片機(jī)I/O 口模擬串行通信方法中,所述步驟a)中轉(zhuǎn)換接口芯片的單電壓為5V,第一接口邏輯上的電壓為-3?15V,第一接口邏輯上的電壓為+3?15V。
[0017]串行接口的基本通信方式串行接口的有異步和同步兩種基本通信方式。異步通信采用用異步傳送格式。數(shù)據(jù)發(fā)送和接收均將起始位和停止位作為開始和結(jié)束的標(biāo)志。在異步通信中,起始位占用一位(低電平),用來表示字符開始。其后為7或8位的數(shù)據(jù)編碼,第8位通常做為奇偶校驗(yàn)位。最后為停止位(高電平)用來表示字符傳送結(jié)束。上述字符格式通常作為一個(gè)串行幀,如無奇偶校驗(yàn)位,即為常見的N.8.1幀格式。串行通信中,每秒傳送的數(shù)據(jù)位稱為波特率。如數(shù)據(jù)傳送的波特率為1200波特,采用N.8.1幀格式(10位),則每秒傳送字節(jié)為120個(gè),而字節(jié)中每一位傳送時(shí)間即為波特率的倒數(shù):T = 1/1200 =
0.833msο同樣,如數(shù)據(jù)傳送的波特率為9600波特,則字節(jié)中每一位傳送時(shí)間為T = 1/9600=0.104msο根據(jù)數(shù)據(jù)傳送的波特率即字節(jié)中每一位的傳送時(shí)間,我們便可用普通I/O 口來模擬實(shí)現(xiàn)串行通信的時(shí)序。
[0018]軟件編寫要嚴(yán)格按照異步通信的時(shí)序進(jìn)行,每bit位傳送時(shí)間間隔按通信速率1200bit/s計(jì)算為833 μ S,系統(tǒng)要求單片機(jī)晶振為6Μ。
[0019]上述實(shí)施例是對本發(fā)明的說明,不是對本發(fā)明的限定,任何對本發(fā)明簡單變換后的方案均屬于本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種單片機(jī)I/O 口模擬串行通信方法,依次包括以下步驟: a)硬件連接:單片機(jī)通過普通I/O口與PC系列微機(jī)RS232串行口實(shí)現(xiàn)通信的硬件接口電路連接,89C51單片機(jī)的輸入、輸出接口均采用TTL電平,TTL電平到RS232串行口之間電平的轉(zhuǎn)換采用轉(zhuǎn)換接口芯片實(shí)現(xiàn)電平轉(zhuǎn)換已達(dá)到配對的目的,轉(zhuǎn)換接口芯片用單電壓實(shí)現(xiàn)與RS232的第一接口邏輯和第二接口邏輯之間的電平轉(zhuǎn)換; b)軟件設(shè)計(jì):89C51單片機(jī)的第一接口和第二接口分別模擬串行通信的發(fā)送和接收,第一接口和第二接口的程序主要由INPUT發(fā)送子程序和OUTPUT接收子程序組成,第一接口和第二接口的通信速率1200bit/s,幀格式為N.8.1 ; c)通信實(shí)現(xiàn):第一接口發(fā)送時(shí),先發(fā)送一個(gè)起始位即低電平,接著按低電平在先的順序發(fā)送8位數(shù)據(jù),最后發(fā)送停止位即高電平;第二接口接收時(shí),先判斷第二接口接的收端口是否有起始的低電平出現(xiàn),如有則按低位在先的順序接收8位數(shù),最后判斷第二接口是否有停止的高電平出現(xiàn),如有則完成一個(gè)數(shù)據(jù)接收,否則繼續(xù)等待,直到接收到高電平。2.如權(quán)利要求1所述的一種單片機(jī)I/O口模擬串行通信方法,其特征在于:所述步驟a)中轉(zhuǎn)換接口芯片采用MAX頂公司的MAX232標(biāo)準(zhǔn)RS232轉(zhuǎn)換接口芯片。3.如權(quán)利要求1所述的一種單片機(jī)I/O口模擬串行通信方法,其特征在于:所述步驟a)中轉(zhuǎn)換接口芯片的單電壓為5V,第一接口邏輯上的電壓為-3?15V,第一接口邏輯上的電壓為+3?15V。
【專利摘要】本發(fā)明公開了一種單片機(jī)I/O口模擬串行通信方法,單片機(jī)通過普通I/O口與PC系列微機(jī)RS232串行口實(shí)現(xiàn)通信的硬件接口電路連接,89C51單片機(jī)的輸入、輸出接口均采用TTL電平,TTL電平到RS232串行口之間電平的轉(zhuǎn)換采用轉(zhuǎn)換接口芯片實(shí)現(xiàn)電平轉(zhuǎn)換已達(dá)到配對的目的,轉(zhuǎn)換接口芯片用單電壓實(shí)現(xiàn)與RS232的第一接口邏輯和第二接口邏輯之間的電平轉(zhuǎn)換。本發(fā)明可在單片機(jī)的最小應(yīng)用系統(tǒng)中實(shí)現(xiàn)與兩個(gè)以上串行接口設(shè)備的多機(jī)通信。
【IPC分類】G06F13/40
【公開號】CN105224492
【申請?zhí)枴緾N201510553137
【發(fā)明人】王中友, 黃巍, 王天杰, 潘高軍
【申請人】浙江省通信產(chǎn)業(yè)服務(wù)有限公司
【公開日】2016年1月6日
【申請日】2015年9月1日