STM32再學(xué)習——實(shí)現完美的RS485
在遠距離通訊中,難免受干擾,因此,偉大的牛人們就創(chuàng )造了一種差分傳輸的方式——RS485通訊方式(以下簡(jiǎn)稱(chēng)RS485)。RS485由兩根差分線(xiàn)來(lái)傳輸數據,比起RS232來(lái)說(shuō),其傳輸的距離更遠,搞干擾性更強。當然,也為了節省銀子,因此,只保留了一組差分線(xiàn),也就只能完成同一時(shí)刻只接收或發(fā)送數據的半雙工通訊了。
本文引用地址:http://dyxdggzs.com/article/182410.htm在設計中,我們經(jīng)常使用一個(gè)名為Max485的芯片來(lái)完成TTL電平至差分電平的轉換,這款芯片有一個(gè)DE(發(fā)送使能)引腳控制著(zhù)RS485線(xiàn)的數據傳輸方向,而這個(gè)引腳何時(shí)高電平,何時(shí)低電平對我們的數據交換質(zhì)量也就起著(zhù)重大的作用。
我們先來(lái)看一下DE引腳的作用。當主設備完成發(fā)送后,其需要在1byte的時(shí)間內釋放RS485總線(xiàn),否則從設備在收到數據后,再回送數據時(shí)就會(huì )與主設備對總線(xiàn)占用的問(wèn)題而產(chǎn)生沖突,這在RS485總線(xiàn)上是不允許的——RS485總線(xiàn)沒(méi)有仲裁機制。因此,DE引腳就需要在主設備發(fā)送完成最后一個(gè)字節的最后一位數據的一位時(shí)間內將DE引腳從高電平拉到低電平。
STM32微處理器提供一個(gè)應用實(shí)例來(lái)實(shí)現精確、高效地控制DE引腳。這里我們使用DMA方式通過(guò)UART發(fā)送與接收數據,那么我們將會(huì )用到DMA發(fā)送完成中斷與USART發(fā)送完成中斷。DMA控制器監控著(zhù)整個(gè)發(fā)送過(guò)程,待發(fā)送數據將會(huì )不斷地被存入USART數據寄存器直到DMA計數減至零。當DMA發(fā)送完成后將觸發(fā)DMA發(fā)送完成中斷,我們就在這個(gè)中斷中,將DE引腳的電平拉低。
我親愛(ài)的網(wǎng)友們,你們學(xué)會(huì )了嗎?
數字通信相關(guān)文章:數字通信原理
評論