❶ 單片機多機通信有哪些方式呢
主要看距離,板內有iic,spi等,板外can,usb,乙太網。。。
❷ 單片機多機通訊時,多是主機向從機發送命令後,從機給出應答信號,能不能從機主動給主機發送數據呢,謝謝
主機和從機通訊時,不可以從機主動發數據給主機。一般要主機主動去發布命令,從機去應答,如果從機也主動和主機聯系,那麼會造成主機接收數據錯誤,或者發送數據錯誤!
下面分析下原因。
1、首先說明下單片機多機通訊的原理:簡單點就是多個單片機TXD和RXD連接到一個,主機的TXD連接從機的RXD,從機之前是並聯狀態;復雜的呢就是通過RS485晶元,連接方式和上面一樣的,RS485相對來說傳輸數據抗干擾。
2、主機給從機發送數據,從機怎麼來接收這一幀數據。一般我們是給每個從機都設置一個獨一無二的地址。從機接收到數據首先判斷是不是發送給自己的,就像是收快遞一樣的。不是發給自己的,後面的數據就不處理,或者不接收數據。
3、說明下主機和從機的概念。其實主機、從機都是一樣的設備,作殲如為主機來說,這個設備要主動去和從機的設備去溝通,就好像車間的班長和流水線上的操作工,班長去下發任務,操作工根據任務命令去做事。
主機就是去告訴從機,什麼時間去做什麼事。從機就是等待命令,然後去檢測外部信號,執行命令。
4、主機和從機通訊的時候罩御,能不能從機主動。明白了主機和從機的概念,深入的想一下,為什麼要主機發送命令,從機做出應答呢
。一般是主機會和很多從機進行通信。主機和從機通信一般是有個時間的間隔。比如200ms發送一次,然後切換到下一個從機。
如果主機在發送數據的時候,從機突然主動和主機聯系了,那麼
就會出現數據錯誤了,因為主機在發送數據,發送的過程中肯定會造成來不及處理接收數據,因為單片機同時只能處理一件事情。
所以
主機就是要主動聯系,從機就是要等待主機聯系之後再回應主機。不然就會出現溝通混亂的問氏悶啟題,在編寫程序的時候一定要注意這一點。
❸ 單片機多機通信程序
單片機多機通信,一個主機多個從機+一個通信協議就可以了,正常的串口設置就可以,協議可以以數據包形式,如:引導符、從機號、數據長度、指令類型、數據1---數據n、校驗碼、結束符,以主機發送指令從機應答,從機間需由主機協助。