發布日期:2022-04-20 點擊率:71
越來越多的功能各異的單片機為我們的設計提供了許多新的方法與思路,對于某一些場合,比如:復雜的后臺運算及通信與高實時性前臺控制系統、軟件資源消耗大的系統、功能強大的低消耗系統、加密系統等等,如果合理使用多種不同類型的單片機組合設計,可以得到極高靈活性與性能價格比。
1、采用硬件UART進行異步串行通信
這是一種占用口線少,有效、可靠的通信方式;但遺憾的是許多小型單片機沒有硬件 UART,有些也只有1個UART,如果系統還要與上位機通信的話,硬件資源是不夠的,這種方法一般用于單片機有應件UART且不需與外界進行串行通信或采用雙UART單片機的場合。
2、采用片內SPI接口或2C總線模塊串行通信形式,SPI/I2C接口具有硬件簡單、軟件編程容易等特點,但目前大多數單片機不具備硬件SPI/I2C模塊。
3、利用軟件模擬SPI/I2C模式通信,這種方式很難模擬從機模式,通信雙方對每一位要做出響應,通信速率與軟件資源的開銷會形成一個很大的矛盾,處理不好會導致系統整體性能急劇下降,這種方法只能用于通信量極少的場合。
4、口對口并行通信,利用單片機的口線直接相連,加上1~2條握手信號線,這種方式的特點是通信速度快,1次可以傳輸4位或8位,甚至更多,但需要占用大量的口線,而且數據傳遞是準同步的,在一個單片機向另一個單片機傳送1個字節以后,必須等到另一個單片機的接收響應信號后才能傳送下一個數據。一般用于一些硬件口線比較富余的場合。
51系列單片機片內支持其與上位機的多機通訊,也即是一個上位機可以控制多個下位機(由單片機組成)分時協同工作。這個功能的實現主要依賴于51單片機中存在從上位機接收地址還是接收數據的標志位SM2。51單片機有三種通訊模式,由SCON寄存器控制,SCON寄存器結構如下
SCON D7 D6 D5 D4 D3 D2 D1 D0
SM0 SM1 SM2 REN TB8 RB8 TI RI
只有工作在多機通信控制位,允許接收位模式,單片機才具有多機通信能力,此時SM2=1時,只有當接收到第9位數據(RB8)為1時,才把接收到的前8位數據送入SBUF,且置位RI發出中斷申請,否則會將接受到的數據放棄。當SM2=0時,就不管第位數據是0還是1,都難得數據送入SBUF,并發出中斷申請。這樣就可以實現多機通信。為什么?假設所有下位機初始時都將SM2置為1,那么它們只能接收被標志為地址的數據。上位機先發送地址數據,然后所有單片機同時接收到該數據送進各自的SBUF,那么我們就可以在單片機程序中進行對該數據的判斷,看看它是否就是本機的地址,如果是,那么就將SM2清零,等待上位機發送數據(這里不是地址數據,它們的區別在于第9位是1還是0,若為1,我們定義為地址數據,為0,我們定義為數據),而其他單片機因為接收到的地址數據都與自己預置的不同,所以不將SM2清零,那么他們就接收不到下一個周期單片機發送過來的數據(不是地址數據),繼續等待他的地址數據的到來。
下一篇: PLC、DCS、FCS三大控
上一篇: 怎樣編寫一個簡單的單