一文讀懂MCS-51系列單片機(jī)多機(jī)通信原理
多機(jī)通信是指兩臺(tái)以上計(jì)算機(jī)之間的數(shù)據(jù)傳輸,主從式多機(jī)通信是多機(jī)通信系統(tǒng)中最簡(jiǎn)單的一種,應(yīng)用也最為廣泛。
工作原理:串行口控制寄存器SCON中的SM2為多機(jī)通信控制位。串行口以方式2或方式3接收時(shí),若SM2為1,則僅當(dāng)接收到的第9位數(shù)據(jù)RB8為1時(shí),數(shù)據(jù)才裝入SBUF,置位RI,請(qǐng)求CPU對(duì)數(shù)據(jù)進(jìn)行處理;如果接收到的第9位數(shù)據(jù)RB8為0,則不產(chǎn)生中斷標(biāo)志RI,信息丟失,CPU不作任何處理。當(dāng)SM2為0時(shí),則接收到一個(gè)數(shù)據(jù)后,不管第9位數(shù)據(jù)RB8是1還是0,都將數(shù)據(jù)裝入接收緩沖器SBUF,置位中斷標(biāo)志RI,請(qǐng)求CPU處理,應(yīng)用這個(gè)特性,便可以實(shí)現(xiàn)MCS-51的主從式多機(jī)通信。
(1)主機(jī)的SM2=0;所有從機(jī)的SM2=1,以便接收主機(jī)發(fā)來的地址。
(2)主機(jī)給從機(jī)發(fā)送地址時(shí),第9數(shù)據(jù)位上發(fā)送1,以指示從機(jī)接收這個(gè)地址。
(3)所有從機(jī)在SM2=1、RB8=1和RI=0時(shí),接收主機(jī)發(fā)來的從機(jī)地址,進(jìn)入相應(yīng)中斷服務(wù)程序,并和本機(jī)地址比較以確定是否為被尋址從機(jī)。
(4)未被尋址從機(jī)保持SM2=1,并退出各自中斷服務(wù)程序。被尋址從機(jī)通過指令清零SM2,以正常接收主機(jī)隨之而來發(fā)送的數(shù)據(jù)或命令(每帖數(shù)據(jù)第9位均為0),并作相應(yīng)處理。同時(shí)向主機(jī)發(fā)回接收到的從機(jī)地址,供主機(jī)核對(duì)。
(5)完成主機(jī)和被尋址從機(jī)之間的數(shù)據(jù)通信,被尋址從機(jī)在通信完成后重新使SM2=1,并退出中斷服務(wù)程序,等待下一次通信。