英創(chuàng)EM928x系列主板包括板載8路物理串口的EM9281和EM9280,以及板載7路串口的EM9281,其中ttyS1-ttyS5為高速全雙工串口;ttyS6-ttyS8為低速串口。除了ttyS3引出方式為232電平以外,其余7路串口均以TTL電平引出,客戶可以在應(yīng)用底板上將這些串口擴展為標準RS232或RS485串口使用,也可以連接自己的串口外設(shè)。
EM928x的TTL串口除了ttyS1以外,都是三線串口,提供RXD、TXD、GND這3路信號。為了提高電路的抗干擾能力,實際RS485串口應(yīng)用中,客戶可能需要使用RTS#硬件方向控制。英創(chuàng)為此提供的方案是:用戶程序可設(shè)置主板上的某位GPIO作為RTS#信號線,設(shè)置后內(nèi)核串口驅(qū)動中將增加相關(guān)的控制操作,客戶只需在使用串口之前使能RTS#功能,就可以啟動RTS#硬件方向控制功能。
目前支持這一功能的有ttyS1、ttyS3、ttyS4、ttyS5這4路串口,相應(yīng)的可以配置GPIO用于模擬RTS#信號線,EM9280的GPIO中能夠作為RTS#信號線的有:GPIO0、GPIO1、GPIO6、GPIO7、GPIO10、GPIO11、GPIO20、GPIO21、GPIO22、GPIO23、GPIO24、GPIO25、GPIO26、GPIO27、GPIO28、GPIO29、GPIO30、GPIO31。而EM9821和EM9287的GPIO都可以作為RTS#信號線。
須注意的是,上述4路GPIO一旦被用作RTS#信號線,則該管腳不能同時作為GPIO使用。
要使用這一功能,在應(yīng)用底板制作的時候,除了引出TXD、RXD,并將串口信號轉(zhuǎn)換為差分信號以外,還需要進行一些電路擴展,如下圖。
從圖中可以看出,方向控制信號COM2_RTSn(即RTS#信號)是低電平有效的,有效時(低電平)串口處于發(fā)送狀態(tài),無效時(高電平)處于接收狀態(tài)。 用戶需要特別注意RTS#信號是低電平有效的控制信號,這是因為:(1)在主板上電復(fù)位時,所有管腳均處于帶上拉的輸入狀態(tài),這時管腳的電平為高。采用低電平輸出有效,防止了在上電復(fù)位過程中,RS485總線被無效信號干擾的問題;(2)若由于某種原因RTS#信號與RS485驅(qū)動斷開,因為懸空管腳在數(shù)字電路中是作高電平狀態(tài)的,因此也避免了電路內(nèi)部的故障影響RS485總線的情況發(fā)生。
EM928x內(nèi)核中已經(jīng)增加了RTS#控制部分,在串口測試例程中也增加了相應(yīng)結(jié)構(gòu)定義和函數(shù)如下:
unsigned int pin=GPIOx; //x為哪一路GPIO
res=ioctl(m_fd,EM9280_IOCTL_SET_RTS_PIN,&pin);
之后對于串口的讀寫操作和標準的RS232串口操作完全一致。
由于RTS#的控制由驅(qū)動程序自動進行,因此無論是否打開這一功能,客戶的應(yīng)用程序開發(fā)是完全一樣的,可參考英創(chuàng)光盤的Step2_SerialTest進行開發(fā)。
另,用戶還可以通過修改u-boot配置來啟動RTS#硬件方向控制功能,如需實現(xiàn)這一操作,可與我公司聯(lián)系以獲得相關(guān)技術(shù)支持。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6085瀏覽量
35415
發(fā)布評論請先 登錄
相關(guān)推薦
評論