欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于串行通信的棧定時調(diào)整的制作方法

文檔序號:12071230閱讀:334來源:國知局
用于串行通信的棧定時調(diào)整的制作方法與工藝

下面描述的實施例涉及協(xié)議棧,并且更特別地涉及用于串行通信的棧定時調(diào)整。



背景技術(shù):

主設(shè)備與從設(shè)備之間的串行通信有時依賴于定時來確定通信的開始和結(jié)束。例如,Modbus通信協(xié)議采用主-從布置,其中主設(shè)備發(fā)起所有通信活動。在此布置中,主設(shè)備向從設(shè)備發(fā)送命令。從設(shè)備在進(jìn)行響應(yīng)之前等待一段時間,通常是3.5個字符。如果主設(shè)備在該時間段之后未發(fā)送任何其它數(shù)據(jù),則允許從設(shè)備發(fā)送響應(yīng)。此布置確保在給定時間只有主設(shè)備或從設(shè)備在進(jìn)行通信。其它通信協(xié)議采用類似的定時約束,諸如可尋址遠(yuǎn)程傳感器高速通道(HART)協(xié)議。HART協(xié)議是具有確定網(wǎng)絡(luò)上的設(shè)備何時可以進(jìn)行通信的各種定時約束的多主設(shè)備協(xié)議,所述約束諸如從設(shè)備超時(STO)、鏈路準(zhǔn)許RT1以及鏈路靜默RT2。

通常通過連續(xù)地發(fā)射二進(jìn)制數(shù)據(jù)的通用異步接收機(jī)/發(fā)射機(jī)(UART)來發(fā)射串行通信。例如,主設(shè)備上的程序可以生成符合Modbus標(biāo)準(zhǔn)的命令并通過UART來發(fā)送命令。從設(shè)備可以用從設(shè)備的UART來接收二進(jìn)制數(shù)據(jù)。UART可以將二進(jìn)制數(shù)據(jù)提供給從設(shè)備的程序或嵌入式系統(tǒng),其可以根據(jù)Modbus標(biāo)準(zhǔn)來解釋二進(jìn)制數(shù)據(jù)。從設(shè)備然后可以生成對命令的響應(yīng)并通過UART將其發(fā)送到主設(shè)備。該響應(yīng)然后被主設(shè)備根據(jù)Modbus標(biāo)準(zhǔn)進(jìn)行解釋。用其它串行通信協(xié)議可以采用類似方法。

如可以認(rèn)識到的,連續(xù)發(fā)射的二進(jìn)制數(shù)據(jù)的正確解釋必須是根據(jù)串行通信協(xié)議。通信協(xié)議可以定義定時間隔,諸如用以完成通信的時間、接收與發(fā)射之間的等待時段、通信中的字段的位尺寸等。例如,如果主設(shè)備的UART發(fā)射請求包,其中在二進(jìn)制數(shù)據(jù)中存在間隙(中間的一個字符寂靜),則從設(shè)備將不會將其視為兩個獨立的請求包。如果間隙超過3.5個字符的時間,則從設(shè)備將不正確地將其視為兩個獨立的請求包。

通用串行總線(USB)將較舊的基于UART的串行通信協(xié)議逐漸替換為實際上的硬件標(biāo)準(zhǔn)。例如,在基于UART的串行通信協(xié)議中充當(dāng)主設(shè)備的許多計算機(jī)正在被具有USB接口的計算機(jī)取代。然而,在許多應(yīng)用中仍在利用采用基于UART的串行通信協(xié)議的程序。為了通過USB接口進(jìn)行通信,串行通信被“堆疊”在虛擬UART層上并根據(jù)USB標(biāo)準(zhǔn)通過USB接口進(jìn)行發(fā)射。

然而,當(dāng)通過USB接口來發(fā)射依賴于定時的基于UART的串行通信時,在解釋通信時可能導(dǎo)致定時誤差。因此,需要一種用于串行通信的棧定時調(diào)整。



技術(shù)實現(xiàn)要素:

提供了一種用于串行通信的用于棧定時調(diào)整的方法。根據(jù)實施例,所述方法包括接收USB通信,將USB通信解碼成UART幀,以及根據(jù)串行協(xié)議來調(diào)整UART幀的定時。

提供了一種用于串行通信的具有棧定時調(diào)整的USB設(shè)備。根據(jù)實施例,具有棧定時調(diào)整的USB設(shè)備包括USB控制器,其被配置成接收USB通信并從USB通信提取已編碼串行包。具有棧定時調(diào)整的USB設(shè)備還包括被配置成將已編碼串行包解碼成UART幀的微處理器和被配置成根據(jù)串行協(xié)議來調(diào)整UART幀的定時的棧定時調(diào)整。

提供了一種用于串行通信的具有棧定時調(diào)整的通信系統(tǒng)。根據(jù)實施例,用于串行通信的具有棧定時調(diào)整的通信系統(tǒng)包括被適配成將串行包編碼到USB通信中的USB設(shè)備和與該USB設(shè)備通信的具有棧定時調(diào)整的USB設(shè)備。具有棧定時調(diào)整的USB被配置成從USB通信提取串行包并將其解碼,并且調(diào)整串行包的定時。

方面

根據(jù)一方面,一種用于串行通信的用于棧定時調(diào)整的方法包括接收USB通信,將USB通信解碼成UART幀,以及根據(jù)串行協(xié)議來調(diào)整UART幀的定時。

優(yōu)選地,將USB通信解碼成UART幀的步驟包括將UART幀排序。

優(yōu)選地,根據(jù)串行協(xié)議來調(diào)整UART幀的定時的步驟包括在被編碼到USB通信中的兩個或更多個串行包之間添加延遲。

優(yōu)選地,根據(jù)串行協(xié)議來調(diào)整UART幀的定時的步驟包括去除添加到被編碼到USB通信中的串行包的字符間延遲。

優(yōu)選地,所述串行協(xié)議包括Modbus協(xié)議。

優(yōu)選地,所述串行協(xié)議包括HART協(xié)議。

優(yōu)選地,所述USB通信包括具有串行包的USB CDC消息。

根據(jù)一方面,具有棧定時調(diào)整的USB設(shè)備(100)包括USB控制器(100a),其被配置成接收USB通信并從USB通信提取已編碼串行包;微處理器(100b),其被配置成將已編碼串行包解碼成UART幀;以及棧定時調(diào)整(100c),其被配置成根據(jù)串行協(xié)議來調(diào)整UART幀的定時。

優(yōu)選地,所述微處理器(100b)進(jìn)一步被配置成按順序排序UART幀。

優(yōu)選地,被配置成根據(jù)串行協(xié)議來調(diào)整UART幀的定時的棧定時調(diào)整(100c)包括被配置成在被編碼到USB通信中的串行包中的兩個或更多個之間添加時間延遲的棧定時調(diào)整(100c)。

優(yōu)選地,被配置成根據(jù)串行協(xié)議來調(diào)整UART幀的定時的棧定時調(diào)整(100c)包括被配置成去除添加到被編碼到USB通信中的串行包的字符間延遲的棧定時調(diào)整(100c)。

優(yōu)選地,所述串行協(xié)議包括Modbus協(xié)議。

優(yōu)選地,所述串行協(xié)議包括HART協(xié)議。

優(yōu)選地,所述USB通信包括具有串行包的USB CDC消息。

根據(jù)一方面,用于串行通信的具有棧定時調(diào)整的通信系統(tǒng)(50)包括被適配成將串行包編碼到USB通信中的USB設(shè)備(200)和與USB設(shè)備(200)通信的具有棧定時調(diào)整的USB設(shè)備(100)。具有棧定時調(diào)整的USB設(shè)備被配置成從USB通信提取串行包并將其解碼,并且調(diào)整串行包的定時。

優(yōu)選地,具有棧定時調(diào)整的USB設(shè)備(100)進(jìn)一步被配置成用被編碼到響應(yīng)USB通信中的串行響應(yīng)包對串行包進(jìn)行響應(yīng)。

優(yōu)選地,USB設(shè)備(200)是進(jìn)一步被配置成將串行請求包編碼到USB通信中的主設(shè)備。

附圖說明

相同的附圖標(biāo)記在所有圖上表示相同元件。應(yīng)理解的是附圖不一定按比例。

圖1示出了具有USB設(shè)備12和串行設(shè)備14的現(xiàn)有技術(shù)通信系統(tǒng)的框圖10。

圖2示出了圖1中所示的框圖10的更詳細(xì)部分視圖。

圖3示出了根據(jù)實施例的具有棧定時調(diào)整的通信系統(tǒng)50的框圖。

圖4示出了參考圖3所述的具有棧定時調(diào)整的USB設(shè)備100的更詳細(xì)框圖。

圖5示出了根據(jù)實施例的具有定時調(diào)整的協(xié)議棧500。

圖6示出了根據(jù)實施例的具有棧定時調(diào)整的Modbus協(xié)議棧600。

圖7示出了根據(jù)實施例的具有棧定時調(diào)整的HART協(xié)議棧700。

圖8示出了根據(jù)實施例的用于串行通信的用于棧定時調(diào)整的方法800。

具體實施方式

圖1-8和隨后的描述描繪了特定示例以教導(dǎo)本領(lǐng)域的技術(shù)人員如何實現(xiàn)和使用用于串行通信的棧定時調(diào)整的實施例的最佳方式。出于教導(dǎo)本發(fā)明原理的目的,某些常規(guī)方面已被簡化或省略。本領(lǐng)域的技術(shù)人員將認(rèn)識到落在本描述的范圍內(nèi)的根據(jù)這些示例的變化。本領(lǐng)域的技術(shù)人員將認(rèn)識到可以用各種方式將下面描述的特征組合以形成用于串行通信的棧定時調(diào)整的多個變化。結(jié)果,下面描述的實施例不限于下面描述的特定示例,而是僅由權(quán)利要求及其等價物限制。

圖1示出了具有USB設(shè)備12和串行設(shè)備14的現(xiàn)有技術(shù)通信系統(tǒng)的框圖10。在圖1中所示的布置中,轉(zhuǎn)換器箱16在USB設(shè)備12與串行設(shè)備14之間。USB線纜18通過USB端口18a將轉(zhuǎn)換器箱16耦合到USB設(shè)備12。轉(zhuǎn)換器箱16還通過串行通信端口19a用串行通信線纜19耦合到串行設(shè)備14。以下是串行設(shè)備14和轉(zhuǎn)換器箱16的更詳細(xì)描述,其示出了可以如何用用于串行通信的棧定時調(diào)整來消除硬件冗余。

圖2示出了圖1中所示的框圖10的更詳細(xì)部分視圖??驁D10包括參考圖1所述的串行設(shè)備14、轉(zhuǎn)換器箱16、USB線纜18以及串行通信線纜19。還示出了被耦合到串行通信線纜19的RS485轉(zhuǎn)換器14a。然而,在替換實施例中,可以采用其它物理層,諸如Bell202或RS422物理層。RS485轉(zhuǎn)換器14a還被示為與RS232 UART 14b通信。替換地,可以不采用RS485轉(zhuǎn)換器14a。替代地,可以采用RS232 UART 14b來與轉(zhuǎn)換器箱16通信。在所示的實施例中,微處理器14c被耦合到RS232 UART 14b。微處理器14c向例如在USB設(shè)備12上執(zhí)行的軟件提供串行協(xié)議棧14d。圖2還將轉(zhuǎn)換器箱16示為具有被耦合到USB線纜18的USB控制器16a。在轉(zhuǎn)換器箱16中,微處理器16b被耦合到USB控制器16a和RS232 UART 16c。RS232 UART 16c被耦合到RS485轉(zhuǎn)換器16d。替換地,可以不采用RS485轉(zhuǎn)換器16d。替代地,RS232 UART 16c可以與串行設(shè)備14通信。在所示的實施例中,RS485轉(zhuǎn)換器16d被耦合到串行通信線纜19且與串行設(shè)備14中的RS485轉(zhuǎn)換器14a通信。

如從圖2可以認(rèn)識到的,RS485轉(zhuǎn)換器14a的使用可以要求冗余硬件。例如,串行設(shè)備14和轉(zhuǎn)換器箱16二者都包括微處理器14c、16b、RS232 UART 14b、16c以及RS485轉(zhuǎn)換器14a、16d。冗余硬件的功能涉及到USB設(shè)備12與串行設(shè)備14之間的串行通信的編碼和解碼。例如,轉(zhuǎn)換器箱16中的RS485轉(zhuǎn)換器16d編碼來自RS232 UART 16c的UART幀,并且串行設(shè)備14中的RS485轉(zhuǎn)換器14a解碼UART幀。因此,消除編碼和解碼UART幀的冗余功能可以消除冗余硬件。以下描述例證了棧定時調(diào)整可以如何減少或消除定時誤差和冗余通信硬件。

圖3示出了根據(jù)實施例的具有棧定時調(diào)整的通信系統(tǒng)50的框圖。在所示的實施例中,具有棧定時調(diào)整的通信系統(tǒng)50包括用USB線纜120耦合到USB設(shè)備200的具有棧定時調(diào)整的USB設(shè)備100。USB線纜120通過USB端口110耦合到具有棧定時調(diào)整的USB設(shè)備100且通過USB端口210耦合到USB設(shè)備200。

具有棧定時調(diào)整的USB設(shè)備100可以是可以包括串行通信的棧定時調(diào)整的任何適當(dāng)USB設(shè)備。例如,具有棧定時調(diào)整的USB設(shè)備100可以是包括生成串行包的軟件的流量計發(fā)射機(jī)。在某些實施例中,可以響應(yīng)于來自USB設(shè)備200的請求而從流量計獲得數(shù)據(jù)并將數(shù)據(jù)轉(zhuǎn)換成串行包。可以根據(jù)串行通信協(xié)議來生成串行包。在該示例性實施例中,具有棧定時調(diào)整的USB設(shè)備100可以是對USB設(shè)備200的從設(shè)備。

USB設(shè)備200可以是能夠與具有棧定時調(diào)整的USB設(shè)備100通信的任何適當(dāng)USB設(shè)備。例如,在其中具有棧定時調(diào)整的USB設(shè)備100是從流量計獲得數(shù)據(jù)的發(fā)射機(jī)的前述示例中,USB設(shè)備200可以是運行可以發(fā)送串行請求包的軟件的個人計算機(jī)。串行請求包可以遵守具有棧定時調(diào)整的USB設(shè)備100所采用的串行通信協(xié)議。因此,具有棧定時調(diào)整的USB設(shè)備100可以正確地解釋串行請求包并用串行響應(yīng)包對其進(jìn)行響應(yīng)。

如下面將更詳細(xì)地描述的,USB設(shè)備200可以將串行包編碼到USB通信中。例如,可以將串行請求包編碼成USB通信設(shè)備類(CDC)消息。USB CDC是定義具有不同接口(諸如串行接口)的設(shè)備之間的通信的USB標(biāo)準(zhǔn)。然而,將串行包編碼到USB通信中可以向串行包添加延遲,諸如時間延遲。該延遲還可以是串行包中的兩個或更多個字符之間的字符間延遲。如果不調(diào)整定時,則這些及其它延遲可能引起通信問題。例如,在沒有由Modbus從設(shè)備進(jìn)行的定時調(diào)整的情況下被添加到Modbus串行請求包的時間延遲可以由于Modbus串行請求包中的兩個或更多個字符之間的3.5字符間延遲的存在而阻止響應(yīng)。字符間延遲可以引起串行請求包的錯誤解碼,其可以導(dǎo)致不正確的數(shù)據(jù)響應(yīng)和命令以及甚至工業(yè)設(shè)備中的災(zāi)難性故障。下面描述可以防止此類問題的棧定時調(diào)整的附加細(xì)節(jié)。

圖4示出了參考圖3所述的具有棧定時調(diào)整的USB設(shè)備100的更詳細(xì)框圖。如圖4中所示,具有棧定時調(diào)整的USB設(shè)備100包括經(jīng)由USB端口110耦合到USB線纜120的USB控制器100a。USB控制器100a被耦合到微處理器100b。棧定時調(diào)整100c被示為被耦合到微處理器100b。在替換實施例中,棧定時調(diào)整100c可以是微處理器100b的一部分。棧定時調(diào)整100c可以向例如在具有棧定時調(diào)整的USB設(shè)備100上執(zhí)行的軟件提供串行協(xié)議棧100d。

USB控制器100a可以從USB設(shè)備200接收USB通信。USB通信可以由具有由在USB設(shè)備200上執(zhí)行的軟件生成的串行包的USB CDC消息組成。下面參考圖5-8更詳細(xì)地描述將串行包編碼到USB通信中的細(xì)節(jié)。USB控制器100a可以是能夠解碼USB通信以從USB通信提取已編碼串行包的任何適當(dāng)USB控制器。USB控制器100a可以提取已編碼串行包并將其提供給微處理器100b。

微處理器100b可以被配置成將已編碼串行包解碼成UART幀。微處理器100b可以是能夠?qū)⒁丫幋a串行包解碼成UART幀的任何適當(dāng)微處理器。例如,微處理器100b可以是執(zhí)行以高時鐘速率接收提取出的串行包、緩沖已編碼串行包以便數(shù)據(jù)速率遵照UART格式并按適當(dāng)順序排序UART幀的軟件的處理器。已解碼UART幀可以被提供給棧定時調(diào)整100c。

棧定時調(diào)整100c可以從微處理器100b接收已解碼UART幀。雖然來自微處理器100b的已解碼UART幀可以被排序且具有遵照UART標(biāo)準(zhǔn)的數(shù)據(jù)速率,但UART幀仍可能具有在前文中討論的延遲。例如,UART幀可能在串行包之間具有字符間延遲或不適當(dāng)?shù)臅r間延遲。棧定時調(diào)整100c可以根據(jù)串行協(xié)議來調(diào)整UART幀的定時,如下面將參考圖5-8所討論的。因此,棧定時調(diào)整100c可以將沒有延遲的串行協(xié)議棧100d提供給例如在具有棧定時調(diào)整的USB設(shè)備100上執(zhí)行的軟件。

串行協(xié)議棧100d可以是被具有棧定時調(diào)整的USB設(shè)備100采用的任何串行協(xié)議棧。例如,具有棧定時調(diào)整的USB設(shè)備100可以具有接收和發(fā)送遵照Modbus或HART標(biāo)準(zhǔn)的通信的軟件。在其中具有棧定時調(diào)整的USB設(shè)備100是流量計的實施例中,串行協(xié)議棧100d可以是由USB設(shè)備200發(fā)送的串行請求包。由于棧定時調(diào)整允許串行通信在沒有由延遲引起的誤差的情況下發(fā)生,所以USB設(shè)備200可以正確地對串行請求包進(jìn)行響應(yīng)。下面描述串行包的編碼和解碼的附加細(xì)節(jié)。

圖5示出了根據(jù)實施例的具有定時調(diào)整的協(xié)議棧500。在圖5的實施例中,可以由例如參考圖3和4所述的USB設(shè)備200來提供串行請求包510。如圖5中所示,串行請求包510被編碼成多個UART幀520。所述多個UART幀520被示為由第一組UART幀520a和第二組UART幀520b組成。在替換實施例中,可以采用更多或更少的UART幀。如在圖5中還可以看到的,所述多個UART幀520被編碼到USB通信530中。第一組UART幀520a被編碼成第一USB CDC消息530a且第二組UART幀520b被編碼成第二USB CDC消息530b。在替換實施例中,可以采用更多或更少的USB CDC消息530a、530b。USB通信530可以被發(fā)送到具有棧定時調(diào)整的USB設(shè)備100。

在圖5中還示出了串行響應(yīng)包550,其可以在例如具有棧定時調(diào)整的USB設(shè)備100接收到USB通信530之后由具有棧定時調(diào)整的USB設(shè)備100發(fā)送。串行響應(yīng)包550可以被發(fā)送到參考圖3所述的USB設(shè)備200。在圖5的實施例中,串行響應(yīng)包550被編碼成多個UART幀560。所述多個UART幀560被示為由第一組UART幀560a和第二組UART幀560b組成。所述多個UART幀560被編碼成USB通信570。在所示的實施例中,第一組UART幀560a被編碼成第一USB CDC消息570a。第二組UART幀560b被編碼成第二USB CDC消息570b。USB通信570可以響應(yīng)于串行請求包510而被發(fā)送到例如USB設(shè)備200。

串行請求包510可以是符合串行通信標(biāo)準(zhǔn)(諸如Modbus和HART標(biāo)準(zhǔn))的字符序列。然而,其它串行通信標(biāo)準(zhǔn)在本公開的范圍內(nèi)。所述字符序列可以表示命令、查詢、數(shù)據(jù)等。例如,所述字符序列可以是由在USB設(shè)備200上運行的應(yīng)用發(fā)起的通信。該通信可以被定址到具有棧定時調(diào)整的USB設(shè)備100以請求經(jīng)由USB線纜120向USB設(shè)備200提供數(shù)據(jù)。

串行請求包510被根據(jù)接口標(biāo)準(zhǔn)而編碼成所述多個UART幀520。例如,所述多個UART幀520可以是串行請求包510到具有遵照串行接口標(biāo)準(zhǔn)(諸如RS232標(biāo)準(zhǔn))的定時和數(shù)據(jù)速率的字符序列的轉(zhuǎn)換。然而,作為通過RS232連接器來發(fā)射所述多個UART幀520的替代,所述多個UART幀520被編碼成USB通信530。

可以在USB通信530的一部分中包括所述多個UART幀520的一部分。例如,USB CDC標(biāo)準(zhǔn)可以分配USB CDC消息的一部分用于封裝數(shù)據(jù)。被用來封裝數(shù)據(jù)的每個USB通信530的所述部分有時在本領(lǐng)域中稱為有效負(fù)荷。在某些實施例中,有效負(fù)荷可以具有有限的字節(jié)寬度。例如,有效負(fù)荷可以是64字節(jié)寬的。附加地,所述多個UART幀520中的每一個可以不具有與有效負(fù)荷相同的字節(jié)寬度。結(jié)果,在有效負(fù)荷中可能存在未使用字符。另外,可以將所述多個UART幀520中的每一個劃分在不同的USB通信530之間。在這些及其它實施例中,USB通信530可以用來傳送所述多個UART幀520。因此,在具有棧定時調(diào)整的USB設(shè)備100上運行的應(yīng)用不需要被修改或重編程成通過例如USB端口110進(jìn)行通信。

在圖5中還示出了串行請求包510與所述多個UART幀520之間的用短劃線指示的時間延遲。該時間延遲可以是由于具有棧定時調(diào)整的USB設(shè)備100在例如微處理器100b中具有處理中斷或者在串行請求包510正在被解碼成所述多個UART幀520時的其它延遲而引起的。該時間延遲被圖示為在串行請求包510與所述多個UART幀520之間。然而,如前文所述,可以發(fā)生其它延遲。例如,延遲可以存在于所述多個UART幀520中的每一個之間、所述多個UART幀520中的每一個中的兩個或更多個字符之間等等。

如前文參考圖3-4所述,棧定時調(diào)整100c可以去除所述延遲以確保具有棧定時調(diào)整的USB設(shè)備100與USB設(shè)備200之間的串行通信在沒有誤差的情況下發(fā)生。如可以認(rèn)識到的,棧定時調(diào)整100c可以遵照串行協(xié)議。下面參考圖6和7來更詳細(xì)地描述示例性串行協(xié)議。

圖6示出了根據(jù)實施例的具有棧定時調(diào)整的Modbus協(xié)議棧600。在圖6的實施例中,可以由例如參考圖3和4所述的USB設(shè)備200來提供Modbus請求包610。如圖6中所示,Modbus請求包610被編碼成多個UART幀620。所述多個UART幀620被示為由第一組UART幀620a和第二組UART幀620b組成。在替換實施例中,可以采用更多或更少的UART幀。如在圖6中還可以看到的,所述多個UART幀620被編碼到USB通信630中。第一組UART幀620a被編碼成第一USB CDC消息630a,并且第二組UART幀620b被編碼成第二USB CDC消息630b。在替換實施例中,可以采用更多或更少的USB CDC消息。USB通信630可以被發(fā)送到具有棧定時調(diào)整的USB設(shè)備100。

在圖6中還示出了包尾(end-of-packet,EOP)640延遲。EOP 640是允許從設(shè)備進(jìn)行響應(yīng)的Modbus請求包610之后的延遲或時間段。如果Modbus請求包610被從設(shè)備以3.5字符的延遲接收到,則從設(shè)備可以用Modbus響應(yīng)包650進(jìn)行響應(yīng)。

Modbus響應(yīng)包650可以在例如具有棧定時調(diào)整的USB設(shè)備100接收到USB通信630之后由具有棧定時調(diào)整的USB設(shè)備100發(fā)送。Modbus響應(yīng)包650可以被發(fā)送到參考圖3所述的USB設(shè)備200。在圖6的實施例中,Modbus響應(yīng)包650被編碼成多個UART幀660。所述多個UART幀660被示為由第一組UART幀660a和第二組UART幀660b組成。所述多個UART幀660被編碼成USB通信670。在所示的實施例中,第一組UART幀660a被編碼成第一USB CDC消息670a。第二組UART幀660b被編碼成第二USB CDC消息670b。USB通信670可以響應(yīng)于Modbus請求包610而被發(fā)送到例如USB設(shè)備200。

Modbus請求包610可以是符合Modbus通信標(biāo)準(zhǔn)的字符序列。該序列可以包括由主設(shè)備發(fā)送到從設(shè)備的命令。然而,由于圖6中所示的用短劃線圖示出的延遲,具有棧定時調(diào)整的USB設(shè)備100不能在沒有調(diào)整Modbus請求包610的定時的情況下進(jìn)行響應(yīng)。例如,將Modbus請求包610解碼成所述多個UART幀620可以促使Modbus請求包610的定時移位,從而將EOP 640減小至小于3.5個字符。結(jié)果,從設(shè)備不能對Modbus請求包610進(jìn)行響應(yīng)。

另外,Modbus標(biāo)準(zhǔn)將Modbus請求包610劃分成由位長定義的部分或字段。例如,Modbus RTU幀格式可以在地址和函數(shù)字段之后具有數(shù)據(jù)部分。將Modbus請求包610編碼成USB通信630可以向這些字段中插入字符或位。例如,如前文參考圖5所述,可以將Modbus請求包610劃分在兩個或更多個USB通信630之間。此劃分可以促使附加字符被插入Modbus請求包610中。在HART協(xié)議中可以向串行包添加類似延遲,這將在下面更詳細(xì)地描述。

圖7示出了根據(jù)實施例的具有棧定時調(diào)整的HART協(xié)議棧700。在圖7的實施例中,可以由例如參考圖3和4所述的USB設(shè)備200來提供HART請求包710。如圖7中所示,HART請求包710被編碼成多個UART幀720。所述多個UART幀720被示為由第一組UART幀720a和第二組UART幀720b組成。在替換實施例中,可以采用更多或更少的UART幀。如在圖7中還可以看到的,所述多個UART幀720被編碼到USB通信730中。第一組UART幀720a被編碼成第一USB CDC消息730a,并且第二組UART幀720b被編碼成第二USB CDC消息730b。在替換實施例中,可以采用更多或更少的USB CDC消息730a、730b。USB通信730可以被發(fā)送到具有棧定時調(diào)整的USB設(shè)備100。

在圖7中還示出了從設(shè)備超時(STO)740時段。STO 740是HART請求包710之后的最大時間段,在該時間段中HART標(biāo)準(zhǔn)中的從設(shè)備必須用例如HART響應(yīng)包750開始響應(yīng)。

HART響應(yīng)包750可以在例如具有棧定時調(diào)整的USB設(shè)備100接收到USB通信730之后由具有棧定時調(diào)整的USB設(shè)備100發(fā)送。HART響應(yīng)包750可以被發(fā)送到參考圖3所述的USB設(shè)備200。在圖7的實施例中,HART響應(yīng)包750被編碼成多個UART幀760。所述多個UART幀760被示為由第一組UART幀760a和第二組UART幀760b組成。所述多個UART幀760被編碼成USB通信770。在所示的實施例中,第一組UART幀760a被編碼成第一USB CDC消息770a。第二組UART幀760b被編碼成第二USB CDC消息770b。USB通信770可以響應(yīng)于HART請求包710而被發(fā)送到例如USB設(shè)備200。

HART請求包710可以是符合HART通信標(biāo)準(zhǔn)的字符序列。該序列可以包括由主設(shè)備發(fā)送到從設(shè)備的命令。然而,由于圖7中所示的用短劃線圖示出的延遲,具有棧定時調(diào)整的USB設(shè)備100可能不能在沒有對HART請求包710進(jìn)行定時調(diào)整的情況下進(jìn)行響應(yīng)。例如,將HART請求包710解碼成所述多個UART幀720可以促使HART請求包710的定時移位,從而減小STO 740的長度。結(jié)果,從設(shè)備不能對HART請求包710進(jìn)行響應(yīng)。

另外,HART標(biāo)準(zhǔn)將HART請求包710劃分成由位長定義的部分或字段。如圖7中所示,HART請求包710由前導(dǎo)碼712、定界符714以及數(shù)據(jù)716部分組成。HART響應(yīng)包750被同樣地劃分成前導(dǎo)碼752、定界符754以及數(shù)據(jù)756部分。前導(dǎo)碼712、752是同步和載波檢測字段。定界符714、754將前導(dǎo)碼712、752與數(shù)據(jù)716、756部分分離。雖然在圖7中未示出,但數(shù)據(jù)716、756在HART協(xié)議中由地址、命令、尺寸、狀態(tài)、數(shù)據(jù)字段以及校驗和字段組成。

可以采用棧定時調(diào)整將前述延遲從串行包(諸如串行請求包510-710)去除,如下面將更詳細(xì)地描述的。

圖8示出了根據(jù)實施例的用于串行通信的用于棧定時調(diào)整的方法800。方法800包括接收USB通信810,將USB通信解碼成UART幀820,以及根據(jù)串行協(xié)議來調(diào)整UART幀的定時830。

如前文中所討論的,接收USB通信的步驟810可以由接收USB CDC通信組成。USB通信530可以包括被USB設(shè)備200編碼到USB通信530中的串行請求包510。如前文所述,該編碼可以向串行包添加延遲,諸如定時延遲。

將USB通信解碼成UART幀的步驟820可以包括各種操作。例如,將USB通信解碼成UART幀820可以包括按與被編碼成USB通信的UART幀相同的順序排序UART幀。附加地或替換地,將USB通信解碼成UART幀可以包括將已編碼UART幀緩沖成與接口標(biāo)準(zhǔn)的數(shù)據(jù)速率相符的速率。

根據(jù)串行協(xié)議來調(diào)整UART幀的定時的步驟830可以包括調(diào)整串行包之間的時間延遲、字符間延遲等的操作。例如,根據(jù)串行協(xié)議來調(diào)整UART幀的定時830可以包括去除UART幀中的字符間延遲。附加地或替換地,還可以調(diào)整串行包之間的時間延遲。調(diào)整UART幀的定時可以包括檢驗包尾延遲,諸如前文中描述的EOP 640或STO 740。如果包尾延遲不滿足串行通信標(biāo)準(zhǔn),則可以向串行請求包510-710添加延遲。因此,具有棧定時調(diào)整的USB設(shè)備100能夠正確地對串行請求包510-710進(jìn)行響應(yīng)。

上文所述的實施例提供用于串行通信的棧定時調(diào)整。如上文所解釋的,用于棧定時調(diào)整的方法800可以調(diào)整所述多個UART幀520-720的定時。調(diào)整所述多個UART幀520-720的定時可以包括去除延遲,諸如添加到串行請求包510-710的定時延遲、字符間延遲等。通過去除延遲,具有棧定時調(diào)整的USB設(shè)備100可以正確地解釋串行包,諸如由USB設(shè)備200發(fā)送的串行請求包510。

具有棧定時調(diào)整的USB設(shè)備100可以包括用以執(zhí)行用于棧定時調(diào)整的方法800的棧定時調(diào)整100c。具有棧定時調(diào)整的USB設(shè)備100因此可以正確地執(zhí)行串行包中的命令。例如,具有棧定時調(diào)整的USB設(shè)備100可以是從流量計讀取數(shù)據(jù)并經(jīng)由串行響應(yīng)包550-750將所述數(shù)據(jù)發(fā)送到USB設(shè)備200的發(fā)射機(jī)。

在具有棧定時調(diào)整的USB設(shè)備100中包括棧定時調(diào)整100c可以減少或消除組件和設(shè)備。例如,不需要參考圖1和2所述的轉(zhuǎn)換器箱16。另外,不需要參考圖2所述的RS485轉(zhuǎn)換器14a。附加地,可以改善用于USB設(shè)備200與具有棧定時調(diào)整的USB設(shè)備100之間的通信的數(shù)據(jù)速率。例如,可以以比許多串行接口標(biāo)準(zhǔn)(諸如RS232標(biāo)準(zhǔn))高得多的速率發(fā)射USB通信530-730。

在具有棧定時調(diào)整的USB設(shè)備100中包括用于棧定時調(diào)整的方法800還可以消除對于客戶修改軟件、確保轉(zhuǎn)換器箱的兼容性等的需要。例如,不需要用例如專用USB通信協(xié)議來更新在USB設(shè)備200上執(zhí)行的軟件。軟件可以繼續(xù)在不修改或開發(fā)新軟件的情況下發(fā)送串行包,諸如串行請求包510-710。

上述實施例的詳細(xì)描述并不是被本發(fā)明人設(shè)想在本描述的范圍內(nèi)的所有實施例的詳盡描述。事實上,本領(lǐng)域的技術(shù)人員將認(rèn)識到,上述實施例的某些元件可以被以各種方式組合或消除以產(chǎn)生另外的實施例,并且此類另外的實施例落在本描述的范圍和教導(dǎo)內(nèi)。對于本領(lǐng)域的技術(shù)人員而言還將顯而易見的是,可以整體地或部分地將上述實施例組合以產(chǎn)生在本描述的范圍和教導(dǎo)內(nèi)的附加實施例。

因此,雖然在本文中出于例證性目的描述了特定實施例,但在本描述的范圍內(nèi)可以有各種等價修改,如相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到的。本文中提供的教導(dǎo)可以應(yīng)用于用于串行通信的其它棧定時調(diào)整而不僅僅是上文所述和附圖中所示的實施例。因此,應(yīng)根據(jù)以下權(quán)利要求來確定上述實施例的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
若羌县| 会东县| 彭山县| 自贡市| 武邑县| 黎城县| 枣阳市| 揭西县| 珲春市| 奇台县| 繁昌县| 合川市| 平武县| 合山市| 祁阳县| 婺源县| 牙克石市| 梁平县| 常山县| 天津市| 仁布县| 潢川县| 塘沽区| 万荣县| 永城市| 宁明县| 秭归县| 德化县| 桓台县| 周宁县| 集贤县| 呼玛县| 龙江县| 尖扎县| 丹棱县| 屏东市| 石狮市| 砚山县| 丽江市| 延长县| 丁青县|