原創(chuàng)聲明:
本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權歸本公司所有,如需轉載,需授權并注明出處。
適用于板卡型號:
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG
本章以AN3485模塊介紹RS485的數(shù)據(jù)傳輸。
1.實驗原理
前面介紹過RS232和RS422的實驗,而RS485與RS422類似,也是采用差分信號傳輸,但RS485是半雙工傳輸,也就是說,同一時刻只能有一個方向的數(shù)據(jù)傳輸。而且接口也比RS422少,只有差分信號A和B,而與ARM或FPGA相連的信號為DE(方向選擇),DI(輸入信號TXD),RO(輸出信號RXD)。

從MAX3485文檔中,發(fā)送方向,如果DE為1時,也就是輸出使能,DI值為1時,對于差分信號A和B值為1和0,否則為0和1。

從接收來看,如果DE為0,A和B之間差值大于等于+0.2V,則RO值為1,否則為0。

2.程序設計
由于RS485是半雙工傳輸,那么我們需要制定傳輸協(xié)議進行握手,設定第一個字節(jié)為8’h55,表示一幀數(shù)據(jù)的開始,接下來是傳輸?shù)臄?shù)據(jù)長度信息,由于FIFO大小限制(256),范圍為1~255,接下來是數(shù)據(jù)。格式即為:起始8’h55+數(shù)據(jù)長度+數(shù)據(jù)。
其中uart_tx和uart_rx跟RS232實驗一樣,在這里只修改uart_test即可。我們設計的功能為初始狀態(tài)下將DE設為0,也就是輸入,等待接收上位機發(fā)來的數(shù)據(jù),并緩存到FIFO中,F(xiàn)IFO大小設置為256,然后切換DE為1,也就是輸出,把接收到的數(shù)據(jù)從FIFO中讀出并發(fā)送出去。注意緩存的數(shù)據(jù)是除去起始8’h55和數(shù)量信息的。
在RCV_HEAD狀態(tài)時,判斷接收到的數(shù)據(jù)是否是”S”。

在RCV_COUNT狀態(tài)時,如果數(shù)據(jù)長度小于0,則跳轉到IDLE狀態(tài),如果大于0,則進入接收數(shù)據(jù)狀態(tài)。

在RCV_DATA狀態(tài)下,把數(shù)據(jù)寫入FIFO,并且檢查數(shù)據(jù)長度,切換RS485的方向為輸出,并跳轉狀態(tài)。

在切換總線狀態(tài)時,為了可靠工作,在WAIT狀態(tài)下,延時1ms進行方向切換。

再然后是發(fā)送FIFO中的數(shù)據(jù),SEND_WAIT狀態(tài)是控制讀使能信號fifo_rden,并且判斷數(shù)據(jù)是否發(fā)送完,發(fā)送完后進入IDLE狀態(tài)。

3. 實驗測試
我們仍然使用USB轉串口設備,通過杜邦線將RS485_1的A和B分別與設備的A和B連接。
打開串口工具,設置好串口號波特率,選擇16進制發(fā)送,發(fā)送數(shù)據(jù)以8’h55開頭,點擊發(fā)送,即可在接收窗口看到返回的數(shù)據(jù)。

-
FPGA
+關注
關注
1660文章
22412瀏覽量
636287 -
RS485
+關注
關注
40文章
1335瀏覽量
85993 -
差分信號
+關注
關注
4文章
408瀏覽量
29008 -
Zynq
+關注
關注
10文章
630瀏覽量
49448 -
MPSoC
+關注
關注
0文章
203瀏覽量
25173
發(fā)布評論請先 登錄
如何調試Zynq UltraScale+ MPSoC VCU DDR控制器
Ti推出面向Zynq UltraScale+ MPSoC的電源參考設計
Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞
Zynq UltraScale+ MPSoC的發(fā)售消息
米爾科技Zynq UltraScale+ MPSoC技術參考手冊介紹
【ZYNQ Ultrascale+ MPSOC FPGA教程】第十三章 RS485實驗
如何調試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
米爾電子zynq ultrascale+ mpsoc底板外設資源清單分享
ZYNQ Ultrascale+ MPSoC系列FPGA芯片設計
Zynq UltraScale+ MPSoC中的隔離方法
Zynq UltraScale+ MPSoC的隔離設計示例
Zynq UltraScale+ MPSoC驗證數(shù)據(jù)手冊
【ZYNQ Ultrascale+ MPSOC FPGA教程】第十三章RS485實驗
評論