• 關于KTRMINEX-SB75/10連接器1.4571 的信息

    本文目錄一覽:

    gt710是pcie16的顯卡嗎

    不是。

    gt710不是pcie16的顯卡。

    GT 710 GPU 引擎規格:

    192CUDA 處理器核心

    954繪圖頻率 (MHz)

    GT 710 顯存規格:

    1.8 Gbps 或 5.0 Gbps 顯存頻率

    2 GB標準顯存組態

    GDDR3顯存介面

    64-bit顯存介面寬度

    14.4 顯存位寬 (GB/sec)

    GT 710 特性支持:

    支持NVIDIA PureVideo? Technology

    支持NVIDIA PhysX? Technology

    支持NVIDIA FXAA Technology

    12 API (等級 11_0 特)Microsoft DirectX

    OpenGL 4.5

    PCI Express 2.0 匯流排支持

    支持Windows 7 與 Windows 8, Vista, XP 認證

    CUDA, DirectX 12, PhysX, FXAA, Adaptive VSync, 3D Vision 技術

    支持支持 NVIDIA 3D Vision

    GT 710 顯示器支持:

    3 臺顯示器多熒幕

    2560x1600更大數字分辨率

    2048x1536更大 VGA 分辨率

    支持HDCP

    支持HDMI

    Dual Link DVI-D、HDMI、VGA標準顯示器連接器

    內部針對 HDMI 的音訊輸出

    GT 710 標準繪圖卡尺寸:

    5.7 英寸長度

    2.713 英寸高度

    雙槽寬度

    散熱和功率規格:

    GPU更高溫度:95 (攝氏度)

    繪圖卡更大功率:19 (瓦)

    系統更小功率需求:300 (瓦)

    支持 3D Vision:

    支持3D 藍光

    支持3D 照片

    支持3D 照片和視頻

    啟動keil5出現如圖警告,并且寫函數過程中,不會提示錯誤,求解決方法

    Keil 編譯時出現錯誤和警告的總結

    ??????和C 編譯器錯誤信息中文翻譯

    ??????(1)L15 重復調用

    ??????***WARNING L15: MULTIPLE CALL TO SEGMENT

    ??????SEGMENT: ?PR?SPI_RECEIVE_WORD?D_SPI

    ??????CALLER1: ?PR?VSYNC_INTERRUPT?MAIN

    ??????CALLER2: ?C_C51STARTUP

    ??????該警告表示連接器發現有一個函數可能會被主函數和一個中斷服務程序(或者調用中斷服務程序的函

    ??????數)同時調用,或者同時被多個中斷服務程序調用。

    ??????出現這種問題的原因之一是這個函數是不可重入性函數,當該函數運行時它可能會被一個中斷打斷,從

    ??????而使得結果發生變化并可能會引起一些變量形式的沖突(即引起函數內一些數據的丟失,可重入性函數在任何時候

    ??????都可以被ISR 打斷,一段時間后又可以

    ??????運行,但是相應數據不會丟失)。

    ??????原因之二是用于局部變量和變量(暫且這樣翻譯,arguments,[自變量,變元一數值,用于確定程序或子

    ??????程序的值])的內存區被其他函數的內存區所覆蓋,如果該函數被中斷,則它的內存區就會被使用,這將導致其他函數

    ??????的內存沖突。

    ??????例如,第一個警告中函數WRITE_GMVLX1_REG 在D_GMVLX1.C 或者D_GMVLX1.A51 被定義,它被一個中斷

    ??????服務程序或者一個調用了中斷服務程序的函數調用了,調用它的函數是VSYNC_INTERRUPT,在MAIN.C 中。

    ??????解決方法:

    ??????如果你確定兩個函數決不會在同一時間執行(該函數被主程序調用并且中斷被禁止),并且該函數不占

    ??????用內存(假設只使用寄存器),則你可以完全忽略這種警告。

    ??????如果該函數占用了內存,則應該使用連接器(linker)OVERLAY 指令將函數從覆蓋分析(overlay

    ??????analysis)中除去,例如:

    ??????OVERLAY (?PR?_WRITE_GMVLX1_REG?D_GMVLX1 ! *)

    ??????上面的指令防止了該函數使用的內存區被其他函數覆蓋。如果該函數中調用了其他函數,而這些被調用在

    ??????程序中其他地方也被調用,你可能會需要也將這些函數排除在覆蓋分析(overlay analysis)之外。這種OVERLAY 指

    ??????令能使編譯器除去上述警告信息。

    ??????如果函數可以在其執行時被調用,則情況會變得更復雜一些。這時可以采用以下幾種方法:

    ??????1.主程序調用該函數時禁止中斷,可以在該函數被調用時用#pragma disable 語句來實現禁止中斷的目的。必

    ??????須使用OVERLAY 指令將該函數從覆蓋分析中除去。

    ??????2.復制兩份該函數的代碼,一份到主程序中,另一份復制到中斷服務程序中。

    ??????3.將該函數設為重入型。例如:

    ??????void myfunc(void) reentrant {

    ??????...

    ??????}

    ??????這種設置將會產生一個可重入堆棧,該堆棧被被用于存儲函數值和局部變量,用這種方法時重入堆

    ??????棧必須在STARTUP.A51 文件中配置。這種方法消耗更多的RAM 并會降低重入函數的執行速度。

    ??????(2)提示無M51 文件

    ??????編譯時候提示:

    ??????F:\...\XX.M51

    ??????File has been changed outside the editor, reload ?

    ??????------

    ??????解決方法:

    ??????重新生成項目,產生STARTUP.

    ??????

    1/9

    A51 即可。

    ??????(3)L16 無調用

    ??????*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

    ??????SEGMENT: ?PR?_COMPARE?TESTLCD

    ??????說明:程序中有些函數例如COMPARE(或片段)以前(調試過程中)從未被調用過,或者根本沒

    ??????有調用它的語句。

    ??????這條警告信息前應該還有一條信息指示出是哪個函數導致了這一問題。只要做點簡單的調整就

    ??????可以。不理它也沒什么大不了的。

    ??????解決方法:去掉COMPARE()函數或利用條件編譯#if …..#endif,可保留該函數并不編譯。

    ??????(4)L10 和L16"主程序名字寫錯(或無主程序)"

    ??????

    Salesforce - Flow(流)

    先貼個官方幫助:

    ;type=5

    Flow(流)是Salesforce中實現業務自動化的一個程序,可以實現搜集用戶信息,執行判斷邏輯,展現給用戶信息等業務。在Classic中的叫Visual Flow,Lightning experience中叫Flow。

    Lightning Flow是Salesforce的一個產品,包括兩個工具Process Builder和Flow Builder(官方解釋),相比來說Flow更強大。

    Flow Builder 是創建Flow一個工具。

    Flow就是利用Flow Builder創建的一個具體實例。

    參考的博文:

    Flow主要包含三個構建塊:Elements、Connectors 和 Resources。

    ? ?????Screen - 需要與用戶交互的一個類型,比如需要獲取用戶的一些輸入,或者需要通過Flow給用戶展現一些內容。

    ? ????Logic - 控制流程的分支。Decision相當于條件判斷,這個判斷可以是簡單的Yes,No,也可以是更復雜的規則,滿足規則時執行后面連接器分支。Assignment可以更新某一個變量的值;Loop循環執行;Pause暫停執行。

    ? ????Actions - Flow自動執行的一些動作,包括查詢記錄、創建or更新or刪除記錄、發送郵件、還可以使用Apex執行更復雜的動作。

    ? ????Integrations - 與外部數據的集成交互。

    ? ? 連接器的作用定義流程的走向,告訴流程接下來要做什么。

    ? ? ???Contstant-常量

    ? ? ???Variable(變量) - 保存一個在流程中可能改變的值,比如不同記錄的值不同,或者根據不同的條件值不同。

    ? ? ???Create a Variable 創建一個變量的步驟:

    ? ? ? ? ? ?1.Open Flow Builder. From Setup enter?Flows?in the Quick Find box and click? Flows .

    ? ? ? ? ? ?2.Click? New Flow .

    ? ? ? ? ? ?3.Select? Screen Flow ?and click? Create .

    ? ? ? ? ? ?4.From the toolbox, click? Manager .

    ????????????5.Click? New Resource .

    ????????????6.For Resource Type, select? Variable .

    ????????????7.Enter an API name and description for your variable.

    ????????????8.Select the appropriate data type.

    ????????????9.If you want to store multiple values (a collection), select? Allow multiple values .

    ????????????10.For record variables, select the object whose record values you plan to store.

    ????????????11.Identify the variable’s availability outside the flow.

    ????????????ChoiceSet Picklist

    ????????????Formual

    ????????????Text Template

    創建完Flow,如何使用呢?Trailhead也介紹了幾種方法:

    New Page或者打開一個Lightning Page后Edit Page。

    設置默認的主頁:

    Save 后,Activate可以分配Page。下圖中點擊Assign as Org Default,

    設置完Flow后,點 Back返回頁面,可以看到添加的Flow

    在對象中添加Action后,需要添加到頁面布局,否則用戶看不到。

    In the Salesforce Mobile and Lightning Experience Actions section, click? override the predefined actions ?if present.

    Select? Mobile Lightning Actions ?in the palette, and then drag your action to the Salesforce Mobile and Lightning Experience Actions section.

    在Page Layouts中添加完 Flow Action后,去打開一個記錄(上面用的Contacts,下面截圖是Accounts,效果是一樣的),在button欄就能看到Flow Action按鈕,點擊,執行剛才創建的Flow - Hello World。

    flow顯示在任何應用的下方

    2.4Process Builder調用

    Process Builder添加Actions可以直接調用一個Flow。

    Process Builder和Flow的區別可以參考這篇文章:;wfr=spiderfor=pc

    Flow類型介紹

    ;type=5

    Flow actions aren't supported in Salesforce Classic.

    詳解RS232、RS485、RS422、串口和握手

    計算機與計算機或計算機與終端之間的數據傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠程傳輸時,避免了多條線路特性的不一致而被廣泛采用。

    在串行通訊時,要求通訊雙方都采用一個標準接口,使不同的設備可以方便地連接起來進行通訊。RS-232-C接口(又稱EIA RS-232-C)是目前最常用的一種串行通訊接口。

    RS-232-C是美國電子工業協會EIA(Electronic Industry Association)制定的一種串行物理接口標準。RS是英文“推薦標準”的縮寫,232為標識號,C表示修改次數,代表RS232的最新一次修改(1969),在這之前,有RS232B、RS232A。

    它是在1970 年由美國電子工業協會(EIA)聯合貝爾系統、調制解調器廠家及計算機終端生產廠家共同制定的用于串行通訊的標準。它的全名是“數據終端設備(DTE)和數據通訊設備(DCE)之間串行二進制數據交換接口技術標準”。

    EIA-RS-232C對電器特性、邏輯電平和各種信號線功能都作了規定。?

    在TxD和RxD上:邏輯1(MARK)=-3V~-15V ,邏輯0(SPACE)=+3~+15V ?在RTS、CTS、DSR、DTR和DCD等控制線上:?

    信號有效(接通,ON狀態,正電壓)=+3V~+15V?

    信號無效(斷開,OFF狀態,負電壓)=-3V~-15V?

    根據設備供電電源的不同,+-5、+-10、+-12和+-15這樣的電平都是可能的。

    由于RS-232C并未定義連接器的物理特性,因此,出現了DB-25、DB-15和DB-9各種類型的連接器,其引腳的定義也各不相同。最近,8管腳的RJ-45型連接器變得越來越普遍,盡管它的管腳分配相差很大。

    EIA/TIA 561標準規定了一種管腳分配的方法,但是由Dave Yost發明的被廣泛使用在Unix計算機上的Yost串連設備配線標準 ("Yost Serial Device Wiring Standard")以及其他很多設備都沒有采用上述任一種連線標準。下表中列出的是被較多使用的RS-232中的信號和管腳分配:

    信號的標注是從DTE設備的角度出發的,TD、DTR和RTS信號是由DTE產生的,RD、DSR、CTS、DCD和RI信號是由DCE產生的。

    PC 機的RS-232 口為9 芯針插座。一些設備與PC 機連接的RS-232 接口,因為不使用對方的傳送控制信號,只需三條接口線,即“發送數據TXD”、“接收數據RXD”和“信號地GND”。

    雙向接口能夠只需要3根線制作是因為RS-232的所有信號都共享一個公共接地。非平衡電路使得RS-232非常的容易受兩設備間基點電壓偏移的影響。

    對于信號的上升期和下降期,RS-232也只有相對較差的控制能力,很容易發生串話的問題。RS-232被推薦在短距離(15m以內)間通信。由于非對稱電路的關系,RS-232接口電纜通常不是由雙絞線制作的。

    RS-232-C標準規定的數據傳輸速率為每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特,驅動器允許有2500pF的電容負載,通信距離將受此電容限制。

    例如,采用150pF/m的通信電纜時,最大通信距離為15m;若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號傳送,存在共地噪聲和不能抑制共模干擾等問題,因此一般用于20m以內的通信。

    由RS-232C標準規定在碼元畸變小于4%的情況下,傳輸電纜長度應為50 英尺,其實這個4%的碼元畸變是很保守的,在實際應用中,約有99%的用戶是按碼元畸變10-20%的范圍工作的,所以實際使用中最大距離會遠超過50英尺,美國DEC公司曾規定允許碼元畸變為10%而得出下面實驗結果。

    其中1 號電纜為屏蔽電纜,型號為DECP.NO.9107723 內有三對雙絞線,每對由22# AWG 組成,其外覆以屏蔽網。2 號電纜為不帶屏蔽的電纜。型號為DECP.NO.9105856-04是22#AWG 的四芯電纜。

    在RS-232標準中,字符是以一系列位元來一個接一個的傳輸。最長用的編碼格式是異步起停asynchronous start-stop格式,它使用一個起始位后面緊跟7或8 個數據比特,這個可能是奇偶位,然后是兩個停止位。所以發送一個字符需要10比特,帶來的一個好的效果是使全部的傳輸速率,發送信號的速率以10分劃。

    串行通信在軟件設置里需要做多項設置,最常見的設置包括波特率、奇偶校驗和停止位。波特率是指從一設備發到另一設備的波特率,即每秒鐘多少比特bits per second (bit/s)。典型的波特率是300、1200、2400、9600、19200等bit/s。一般通信兩端設備都要設為相同的波特率,但有些設備也可以設置為自動檢測波特率。

    奇偶校驗Parity是用來驗證數據的正確性。奇偶校驗一般不用,如果使用,那么既可以做奇校驗也可以做偶校驗。奇偶校驗是通過修改每一發送字節(也可以限制發送的字節)來工作的。

    如果不作奇偶校驗,那么數據是不會被改變的。在偶校驗中,因為奇偶校驗位會被相應的置1或0(一般是最高位或最低位),所以數據會被改變以使得所有傳送的數位(含字符的各數位和校驗位)中“1”的個數為偶數;

    在奇校驗中,所有傳送的數位(含字符的各數位和校驗位)中“1”的個數為奇數。奇偶校驗可以用于接受方檢查傳輸是否發送生錯誤——如果某一字節中“1”的個數發生了錯誤,那么這個字節在傳輸中一定有錯誤發生。如果奇偶校驗是正確的,那么要么沒有發生錯誤要么發生了偶數個的錯誤。

    停止位是在每個字節傳輸之后發送的,它用來幫助接受信號方硬件重同步。

    在串行通信軟件設置中D/P/S是常規的符號表示。8/N/1(非常普遍)表明8bit數據,沒有奇偶校驗,1bit停止位。數據位可以設置為7、8或者9,奇偶校驗位可以設置為無(N)、奇(O)或者偶(E),奇偶校驗位可以使用數據中的比特位。

    所以8/E/1就表示一共8位數據位,其中一位用來做奇偶校驗位。停止位可以是1、1.5或者2位的(1.5是用在波特率為60wpm的電傳打字機上的)。

    當需要發送握手信號或數據完整性檢測時需要制定其他設置。公用的組合有RTS/CTS,DTR/DSR或者XON/XOFF(實際中不使用連接器管腳而在數據流內插入特殊字符)。

    接受方把XON/XOFF信號發給發送方來控制發送方何時發送數據,這些信號是與發送數據的傳輸方向相反的。XON信號告訴發送方接受方準備好接受更多的數據,XOFF信號告訴發送方停止發送數據直到知道接受方再次準備好。XON/XOFF一般不贊成使用,推薦用RTS/CTS控制流來代替它們。

    XON/XOFF是一種工作在終端間的帶內方法,但是必須兩端都支持這個協議,而且在突然啟動的時候會有混淆的可能

    XON/XOFF可以工作于3線的接口。RTS/CTS最初是設計為電傳打字機和調制解調器半雙工協作通信的,每次它只能一方調制解調器發送數據。終端必須發送請求發送信號然后等到調制解調器回應清除發送信號。盡管RTS/CTS是通過硬件達到握手,但它有自己的優勢。?

    經過許多年來RS-232 器件以及通信技術的改進,RS-232 的通信距離已經大大增加。由于RS-232 接口標準出現較早,難免有不足之處,主要有以下四點:

    (1) 接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL 電平不兼容故需使用電平轉換電路方能與TTL 電路連接。

    (2) 傳輸速率較低,在異步傳輸時,波特率為20Kbps。現在由于采用新的UART 芯片16C550 等,波特率達到115.2Kbps。

    (3) 接口使用一根信號線和一根信號返回線而構成共地的傳輸形式, 這種共地傳輸容易產生共模干擾,所以抗噪聲干擾性弱。

    (4) 傳輸距離有限,最大傳輸距離標準值為50 米,實際上也只能用在15米左右。?

    針對RS-232串口標準的局限性,人們又提出了RS-422,RS-485接口標準。RS-485/422采用平衡發送和差分接收方式實現通信:發送端將串行口的TTL電平信號轉換成差分信號A、B兩路輸出,經過線纜傳輸之后在接收端將差分信號還原成TTL電平信號。

    由于傳輸線通常使用雙絞線,又是差分傳輸,所以又極強的抗共模干擾的能力,總線收發器靈敏度很高,可以檢測到低至200mV電壓。故傳輸信號在千米之外都是可以恢復。?

    驅動器能輸出±7V的共模電壓?

    接收器的輸入電阻RIN≥12kΩ?

    輸入端的電容≤50pF?

    在節點數為32個,配置了120Ω的終端電阻的情況下,驅動器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線的參數有關)?

    發送端:邏輯"1"以兩線間的電壓差為+(2 至6) V 表示;邏輯"0"以兩線間的電壓差為-(2 至6)V 表示。

    接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號"0";(V+)-(V-)≤-0.2V,表示信號"1") ?

    RS-485 的數據最高傳輸速率為10Mbps,最大的通信距離約為1219M,傳輸速率與傳輸距離成反比,在10Kb/S的傳輸速率下,才可以達到最大的通信距離。

    但是由于RS-485 常常要與PC 機的RS-232口通信,所以實際上一般最高115.2Kbps。又由于太高的速率會使RS-485 傳輸距離減小,所以往往為9600bps 左右或以下。?

    RS-485 接口是采用平衡驅動器和差分接收器的組合,抗共模干能力增強,即抗噪聲干擾性好。RS-485采用半雙工工作方式,支持多點數據通信。

    RS-485總線網絡拓撲一般采用終端匹配的總線型結構。即采用一條總線將各個節點串接起來,不支持環形或星型網絡。如果需要使用星型結構,就必須使用485中繼器或者485集線器才可以。RS-485/422總線一般最大支持32個節點,如果使用特制的485芯片,可以達到128個或者256個節點,最大的可以支持到400個節點。

    RS-485 的國際標準并沒有規定RS485 的接口連接器標準、所以采用接線端子或者DB-9、DB-25 等連接器都可以。

    1、抗干擾性:RS485 接口是采用平衡驅動器和差分接收器的組合,抗噪聲干擾性好。RS232 接口使用一根信號線和一根信號返回線而構成共地的傳輸形式,這種共地傳輸容易產生共模干擾。

    2、傳輸距離:RS485 接口的最大傳輸距離標準值為 1200 米(9600bps 時),實際上可達 3000 米。RS232 傳輸距離有限,最大傳輸距離標準值為 50 米,實際上也只能用在 15 米左右。

    3、通信能力:RS-485 接口在總線上是允許連接多達128個收發器,用戶可以利用單一的 RS-485 接口方便地建立起設備網絡。RS-232只允許一對一通信。

    4、傳輸速率:RS-232傳輸速率較低,在異步傳輸時,波特率為 20Kbps。RS-485 的數據最高傳輸速率為 10Mbps 。

    5、信號線:RS485 接口組成的半雙工網絡,一般只需二根信號線。RS-232 口一般只使用 RXD、TXD、GND 三條線 。

    6、電氣電平值:RS-485的邏輯"1"以兩線間的電壓差為+(2~6) V 表示;邏輯"0"以兩線間的電壓差為-(2~6)V 表 示 。在 RS-232-C 中任何一條信號線的電壓均為負邏輯關系。即:邏輯"1",-5~-15V;邏輯"0 " +5~+15V 。

    RS-422 的電氣性能與RS-485近似一樣。主要的區別在于:

    (1)RS-485 有2 根信號線:發送和接收都是A 和B。由于RS-485 的收與發是共用兩根線,所以不能夠同時收和發(半雙工)。

    (2)RS-422 有4 根信號線:兩根發送(Y、Z)、兩根接收(A、B)。由于RS-422 的收與發是分開的,所以可以同時收和發(全雙工)。

    (3)支持多機通信的RS-422將Y-A 短接作為RS-485 的A、將RS-422 的Z-B 短接作為RS-485 的B可以這樣簡單轉換為RS-485。?

    很多人往往都誤認為RS-422串行接口是RS-485串行接口的全雙工版本,實際上,它們在電器特性上存在著不少差異,共模電壓范圍和接收器輸入電阻不同使得該兩個標準適用于不同的應用領域。

    RS-485串行接口的驅動器可用于RS-422串行接口的應用中,因為RS-485串行接口滿足所有的RS-422串行接口性能參數,反之則不能成立。對于RS-485串行接口的驅動器,共模電壓的輸出范圍是-7V和+12V之間;對于RS-422串行接口的驅動器,該項性能指標僅有±7V。RS-422串行接口接收器的最小輸入電阻是4KΩ;而RS-485串行接口接收器的最小輸入電阻則是12KΩ。

    1、RS-422 有4 根信號線:兩根發送(Y、Z)、兩根接收(A、B)。由于RS-422 的收與發是分開的所以可以同時收和發(全雙工)。

    2、RS-485 只有兩根數據線:發送和接收都是A 和B。由于RS-485 的收與發是共用兩根線,所以不能同時收和發(半雙工)。

    UART是通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種異步收發傳輸器,是設備間進行異步通信的關鍵模塊。UART負責處理數據總線和串行口之間的串/并、并/串轉換,并規定了幀格式;通信雙方只要采用相同的幀格式和波特率,就能在未共享時鐘信號的情況下,僅用兩根信號線(Rx 和Tx)就可以完成通信過程,因此也稱為異步串行通信。

    串口是計算機上一種非常通用設備通信的協議(不要與通用串行總線Universal Serial Bus或者USB混淆)。大多數計算機包含兩個基于RS232的串口。串口同時也是儀器儀表設備通用的通信協議;很多GPIB兼容的設備也帶有RS-232口。同時,串口通信協議也可以用于獲取遠程采集設備的數據。

    串口通信的概念非常簡單,串口按位(bit)發送和接收字節。盡管比按字節(byte)的并行通信慢,但是串口可以在使用一根線發送數據的同時用另一根線接收數據。它很簡單并且能夠實現遠距離通信。比如IEEE488定義并行通行狀態時,規定設備線總常不得超過20米,并且任意兩個設備間的長度不得超過2米;而對于串口而言,長度可達1200米。

    典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發送數據同時在另一根線上接收數據。其他線用于握手,但是不是必須的。串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對于兩個進行通行的端口,這些參數必須匹配:

    這是一個衡量通信速度的參數。它表示每秒鐘傳送的bit的個數。例如300波特表示每秒鐘發送300個bit。當我們提到時鐘周期時,我們就是指波特率例如如果協議需要4800波特率,那么時鐘是4800Hz。這意味著串口通信在數據線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠遠大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設備的通信。

    這是衡量通信中實際數據位的參數。當計算機發送一個信息包,實際的數據不會是8位的,標準的值是5、7和8位。如何設置取決于你想傳送的信息。比如,標準的ASCII碼是0~127(7位)。擴展的ASCII碼是0~255(8位)。如果數據使用簡單的文本(標準 ASCII碼),那么每個數據包使用7位數據。每個包是指一個字節,包括開始/停止位,數據位和奇偶校驗位。由于實際數據位取決于通信協議的選取,術語“包”指任何通信的情況。

    用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數據是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數越多,不同時鐘同步的容忍程度越大,但是數據傳輸率同時也越慢。

    在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設置校驗位(數據位后面的一位),用一個值確保傳輸的數據有偶個或者奇個邏輯高位。例如,如果數據是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數是偶數個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數據,簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備能夠知道一個位的狀態,有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數據是否不同步。

    RS-232通行方式允許簡單連接三線:Tx、Rx和地線。但是對于數據傳輸,雙方必須對數據定時采用使用相同的波特率。盡管這種方法對于大多數應用已經足夠,但是對于接收方過載的情況這種使用受到限制。這時需要串口的握手功能。在這一部分,我們討論三種最常用的RS-232握手形式:軟件握手、硬件握手和Xmodem。

    我們討論的第一種握手是軟件握手。通常用在實際數據是控制字符的情況,類似于GPIB使用命令字符串的方式。必須的線仍然是三根:Tx、Rx和地線,因為控制字符在傳輸線上和普通字符沒有區別,函數SetXModem允許用戶使能或者禁止用戶使用兩個控制字符XON和OXFF。這些字符在通信中由接收方發送,使發送方暫停。

    例如:假設發送方以高波特率發送數據。在傳輸中,接收方發現由于CPU忙于其他工作,輸入buffer已經滿了。為了暫時停止傳輸,接收方發送XOFF,典型的值是十進制19,即十六進制13,直到輸入buffer空了。

    一旦接收方準備好接收,它發送XON,典型的值是十進制17,即十六進制11,繼續通信。輸入buffer半滿時,LabWindows發送XOFF。此外,如果XOFF傳輸被打斷,LabWindows會在buffer達到75%和90%時發送XOFF。顯然,發送方必須遵循此守則以保證傳輸繼續。

    第二種是使用硬件線握手。和Tx和Rx線一樣,RTS/CTS和DTR/DSR一起工作,一個作為輸出,另一個作為輸入。第一組線是RTS (Request to Send)和CTS(Clear to Send)。當接收方準備好接收數據,它置高RTS線表示它準備好了,如果發送方也就緒,它置高CTS,表示它即將發送數據。另一組線是DTR(Data Terminal Ready)和DSR(Data Set Ready)。

    這些現主要用于Modem通信。使得串口和Modem通信他們的狀態。例如:當Modem已經準備好接收來自PC的數據,它置高DTR線,表示和電話線的連接已經建立。讀取DSR線置高,PC機開始發送數據。一個簡單的規則是DTR/DSR用于表示系統通信就緒,而RTS/CTS用于單個數據包的傳輸。

    在LabWindows,函數SetCTSMode使能或者禁止使用硬件握手。如果CTS模式使能,LabWindows使用如下規則:當PC發送數據:RS-232庫必須檢測CTS線高后才能發送數據。

    當PC接收數據:

    如果端口打開,且輸入隊列有空接收數據,庫函數置高RTS和DTR。

    如果輸入隊列90%滿,庫函數置低RTS,但使DTR維持高電平。

    如果端口隊列近乎空了,庫函數置高RTS,但使DRT維持高電平。

    如果端口關閉,庫函數置低RTS和DTR。

    最后討論的握手叫做XModem文件傳輸協議。這個協議在Modem通信中非常通用。盡管它通常使用在Modem通信中,XModem協議能夠直接在其他遵循這個協議的設備通信中使用。在LabWindows中,實際的XModem應用對用戶隱藏了。只要PC和其他設備使用XModem協議,在文件傳輸中就使用LabWindows的XModem函數。函數是XModemConfig,XModemSend和XModemReceive。

    XModem使用介于如下參數的協議:start_of_data、end_of_data、neg_ack、wait_delay、 start_delay、max_tries、packet_size。這些參數需要通信雙方認定,標準的XModem有一個標準的定義:然而,可以通過 XModemConfig函數修改,以滿足具體需要。

    這些參數的使用方法由接收方發送的字符neg_ack確定。這通知發送方其準備接收數據。它開始嘗試發送,有一個超時參數start_delay;當超時的嘗試超過max_ties次數,或者收到接收方發送的start_of_data,發送方停止嘗試。如果從發送方收到start_of_data,接收方將讀取后繼信息數據包。

    包中含有包的數目、包數目的補碼作為錯誤校驗、packet_size字節大小的實際數據包,和進一步錯誤檢查的求和校驗值。在讀取數據后,接收方會調用wait_delay,然后想發送方發送響應。如果發送方沒有收到響應,它會重新發送數據包,直到收到響應或者超過重發次數的最大值max_tries。如果一直沒有收到響應,發送方通知用戶傳輸數據失敗。

    由于數據必須以pack_size個字節按包發送,當最后一個數據包發送時,如果數據不夠放滿一個數據包,后面會填充ASCII碼NULL(0)字節。這導致接收的數據比原數據多。在XModem情況下一定不要使用XON/XOFF,因為XModem發送方發出包的數目很可能增加到XON/OFF控制字符的值,從而導致通信故障。

    KTR聯軸器生產高品質傳動部件和制動器

    服務熱線

    13166059228

    13166059228

    微信客服

    微信客服

  • 妈妈的朋友电影