日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通讯接口应用笔记2:MAX3160实现多协议通讯

發(fā)布時間:2024/7/23 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通讯接口应用笔记2:MAX3160实现多协议通讯 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??在一些應用需求中,我們需要對外部提供串行通訊端口,但這些端口所通訊的目標設備各有不同,接口協(xié)議也有RS232以及RS485和RS422多種。面對這種情況,我們當然可以同時設計多個串口以適應不同需要,但無疑對硬件資源是一種浪費。我們希望能夠動態(tài)配置接口類型以適應不同需求,這一篇中我們就來討論使用MAX3160實現(xiàn)這樣的多協(xié)議接口通訊的問題。

1、原理簡述

??MAX3160是一款可編程RS232、RS485和RS422多協(xié)議收發(fā)器。可以通過引腳配置來實現(xiàn)雙通道RS-232,單通道的RS-485和RS-422以及帶硬件流控制的單通道RS-232接口。MAX3160采用獨特的低壓差發(fā)送輸出級和內(nèi)部雙電荷泵結(jié)構(gòu),在3V到5.5V的單電源供電時,可滿足RS-232和RS-485以及RS-422的接口協(xié)議要求。其引腳定義及封裝如下:

??從上述的引腳定義中我們可以知道, 我們可以通過RS485/RS232、HDPLX等引腳來確定接口的工作模式。當RS485/RS232和HDPLX引腳配置為低電平時,MAX3160工作在RS-232模式。當RS485/RS232引腳配置在高電平時,HDPLX引腳為高電平工作在RS485模式,HDPLX引腳為低電平工作在RS422模式。官方給出的配置方式如下圖所示:

??我們在應用MAX3160時,根據(jù)我們的應用需求來配置RS485/RS232和HDPLX引腳就能得到我們想要的接口模式。我們也可以通過MCU來控制這些引腳以便在需要時動態(tài)修改接口模式。

2、應用設計

??有了前面關于MAX3160的基礎知識,我們來根據(jù)需求設計我們的需要的應用。在官方給出的數(shù)據(jù)手冊中提供了了一個應用參考,在其中能實現(xiàn)帶硬件流控制的RS-232接口和RS-422之間的切換電路圖:

??在上述電路圖中,雖然闡述了接口模式切換的原理,但我們計劃的應用并沒有這么復雜。在我們的應用需求中,我們希望可以實現(xiàn)RS-232和RS-485接口的動態(tài)切換,我們只需要一組RS-232接口也沒有RS-422的應用需求,同時我們也不考慮硬件流控制。在應用于RS-485模式時,我們需要使用15腳來控制RS-485的收發(fā)方向,而且在RS-485和RS422模式下第7腳是不使用的,所以我們可以設計相關的應用如下圖:

??在上述電路圖中,我們實現(xiàn)了RS-232和RS-485的切換,我們通過MCU來控制RS485/RS232引腳和HDPLX引腳以實現(xiàn)動態(tài)切換。

3、設計驗證

??我們設計了MAX3160動態(tài)切換RS-232和RS-485的接口電路,至于是否能夠正確的運行還需要進行驗證。我們設計簡單的應用軟件來驗證一下上述的電路設計是否正確。

??首先我們來驗證RS-232接口模式。在RS-232接口模式下,我們需要將RS485/RS232引腳設置為低電平,并且將HDPLX引腳也設置為低電平。我們在MCU程序中配置如下:

??MCEF_RS232_ALLOW(); //配置為RS232模式

??MCEF_FULLDUPLEX_ALLOW(); //全雙工

??接下來我們來驗證一下RS-485接口模式。在RS-485接口模式下,我們需要將RS485/RS232引腳設置為高電平,并且將HDPLX引腳也設置為高電平。我們在MCU程序中配置如下:

??MCEF_RS485_ALLOW(); //RS485模式

??MCEF_HALFDUPLEX_ALLOW(); //半雙工

??MCEF_RECIEVE_ALLOW(); //接收

??其他的配置如校驗位、波特率等是完全一樣的。在這次的應用中,我們設置波特率為115200,8位數(shù)據(jù)位,1位停止位,無校驗的模式。具體配置如下:

/* UART5初始化 */ static void UART5_Init_Configuration(void) {huart5.Instance = UART5;huart5.Init.BaudRate = 115200;huart5.Init.WordLength = UART_WORDLENGTH_8B;huart5.Init.StopBits = UART_STOPBITS_1;huart5.Init.Parity = UART_PARITY_NONE;huart5.Init.Mode = UART_MODE_TX_RX;huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;huart5.Init.OverSampling = UART_OVERSAMPLING_16;if (HAL_UART_Init(&huart5) != HAL_OK){Error_Handler();}/*啟用串口接收中端*/__HAL_UART_ENABLE_IT(&huart5,UART_IT_RXNE); }

??我們在應用層采用Modbus RTU協(xié)議,對于RS-485接口和RS-232接口,這部分是沒有區(qū)別的。我們在設計中實現(xiàn)了一個94個保持寄存器的從站。

4、小結(jié)

??我們在配置為RS-232模式和RS-485模式時,分別使用RS-232接口和RS-485接口與電腦相連,并使用Modbus主站軟件讀取下位機的數(shù)據(jù),在兩種模式下除了接口選擇不一樣外,其它都是一樣的。獲取到的數(shù)據(jù)都是完全正確的,說明電路設計本身是可以運行的。

??我們在兩種模式下分別運行了一段時間,每種模式大約進行了3000次左右的訪問,沒有出現(xiàn)丟包和錯誤,穩(wěn)定性也基本可以保證。

歡迎關注:

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的通讯接口应用笔记2:MAX3160实现多协议通讯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。