就通信方式討論:(以下不論ARM核\嵌入式\低端\高端均稱為單片機(jī)) 單片機(jī)間通信可用UART或SPI串口通信,UART適合速率不高,為了兼容低端單片機(jī)的場(chǎng)合。SPI比較通用,而且速率可高至單片機(jī)核心時(shí)鐘的1/4(但單片機(jī)IO速率低的要注意不能超過(guò)單片機(jī)IO速率)。高端單片機(jī),如STM32F103系列,帶有DMA,可減輕CPU負(fù)擔(dān)。 單片機(jī)與PC通信,一般用串口或USB接口。串口或用MAX232芯片與PC串口相連,或用USB轉(zhuǎn)UART芯片(PL2302等)橋接。USB口需單片機(jī)帶USB接口模塊,或USB橋接芯片,或用軟件模擬(僅業(yè)余使用,商品或工業(yè)使用不推薦)。 就USB接口討論: 單片機(jī)所帶USB接口多為device接口,很少有host接口。單片機(jī)與PC相連,單片機(jī)一般做device角色。 一般USB設(shè)備開(kāi)發(fā),都需要編寫(xiě)上位機(jī)驅(qū)動(dòng)。除非做成 USB HID 類(lèi)協(xié)議,因?yàn)椴僮飨到y(tǒng)一般是帶有HID驅(qū)動(dòng)的,但缺點(diǎn)很明顯,HID協(xié)議較復(fù)雜,且傳輸速率低。 區(qū)別:?jiǎn)纹瑱C(jī)間通信一般需自定協(xié)議,相對(duì)自由;單片機(jī)與上位機(jī)通信一般依靠現(xiàn)有協(xié)議,然后自定需要的功能協(xié)議。 寫(xiě)到這才想起來(lái)。。樓主說(shuō)的單片機(jī)間通信是近距離通信還是遠(yuǎn)距離通信?。。。我按照在同一設(shè)備內(nèi)考慮的。若是較遠(yuǎn)距離,一般速率做不高,依靠485協(xié)議,或CAN協(xié)議等,甚至有的直接將通信放到局域網(wǎng)環(huán)境上。未見(jiàn)單片機(jī)間通過(guò)USB協(xié)議通信的,因?yàn)閁SB OTG實(shí)現(xiàn)很復(fù)雜。
評(píng)論 (0)
· 鏈接
· 2012-10-29
兩臺(tái)機(jī)器采用USB接口通信的前提條件是,一方作為device,另一方作為host。 在兩個(gè)cortex-M3 MCU的情況下,兩方都只能作為device,那是無(wú)法通信的。如果要通信,最好其中一個(gè)MCU比較高級(jí),具備usb host controller。 一方是MCU,一方是PC的情況下,MCU是device,PC作為host,可以通信。至于怎么通信,建議你自己搜一下網(wǎng)上資料。USB通信協(xié)議比較復(fù)雜,不是這里三言兩語(yǔ)可以解決的問(wèn)題。 具體到STM32,你可以看一下STM32提供的文檔,和示例源碼。 USB協(xié)議入門(mén)讀物:USB in a nutShell
評(píng)論 (0)
· 鏈接
· 2012-10-29
|
|