freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vc的can卡數(shù)據(jù)采集系統(tǒng)設(shè)計-閱讀頁

2025-07-12 18:43本頁面
  

【正文】 e 設(shè)備類型號。 CANIndex 第幾路CAN。pData 用來存儲參數(shù)有關(guān)數(shù)據(jù)緩沖區(qū)地址首指針。 DWORD __stdcall VCI_SetReference(DWORD DevType, DWORD DevIndex, DWORD CANIndex, DWORD RefType, PVOID pData)。DevIndex 設(shè)備索引號,比如當(dāng)只有一個PCI5121時,索引號為0,有兩個時可以為0或1。RefType 參數(shù)類型。返回值 為1表示操作成功,0表示操作失敗。 DevType 設(shè)備類型號。 CANIndex 第幾路CAN。DWORD __stdcall VCI_ClearBuffer(DWORD DevType, DWORD DevIndex, DWORD CANIndex)。DevIndex 設(shè)備索引號,比如當(dāng)只有一個PCI5121時,索引號為0,有兩個時可以為0或1。返回值 為1表示操作成功,0表示操作失敗。 DevType 設(shè)備類型號。 CANIndex 第幾路CAN。DWORD __stdcall VCI_ResetCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex)。DevIndex 設(shè)備索引號,比如當(dāng)只有一個PCI5121時,索引號為0,有兩個時可以為0或1。 DevType 設(shè)備類型號。 CANIndex 第幾路CAN。Len 要發(fā)送的數(shù)據(jù)幀數(shù)組的長度。ULONG __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime=-1)。DevIndex 設(shè)備索引號,比如當(dāng)只有一個PCI5121時,索引號為0,有兩個時可以為0或1。) CANIndex 第幾路CAN。Len 用來接收的數(shù)據(jù)幀數(shù)組的長度。返回值 返回實際讀取到的幀數(shù)。 CAN的初始化其主要是設(shè)置CAN的通信參數(shù)。需要注意的是在初始化之前,應(yīng)設(shè)置輸出控制寄存器的復(fù)位請求位為高,再設(shè)置其它寄存器。程序代碼如下:BOOL CBiYeSheJiDlg::OnInitDialog(){CDialog::OnInitDialog()。 m_EditMask=ffffffff。 m_EditTiming1=14。 (0)。 (0)。 InitializeCriticalSection(amp。}從上面的初始化程序不難看出,對CAN控制器進(jìn)行初始化,實際上就是對驗收碼寄存器、驗收屏蔽寄存器、總線定時寄存器0、總線定時寄存器驗收濾波器、模式寄存器這些寄存器進(jìn)行訪問。若系統(tǒng)中有多個傳感CAN控制器同時向總線發(fā)送數(shù)據(jù),則CAN控制器通過信息幀中的標(biāo)識符來進(jìn)行仲裁,標(biāo)識符數(shù)值最小的CAN控制器具有對總線的優(yōu)先使用權(quán)。程序代碼如下:BOOL CBiYeSheJiDlg::OnInitDialog(){CDialog::OnInitDialog()。 (1)。 m_EditSendFrmID=00000080。}其中,發(fā)送格式有單次發(fā)送、正常發(fā)送、自發(fā)自收和單次自發(fā)自收;幀類型包含了標(biāo)準(zhǔn)幀和擴(kuò)展幀;幀格式有數(shù)據(jù)幀和遠(yuǎn)程幀兩種。PPSID發(fā)送方接收方優(yōu)先級命令頻率消息長00000011111上位機控制器0觸發(fā)1字節(jié): 為1字節(jié)信息組成字節(jié)順序位順序內(nèi)容說明第1字節(jié)要選中的控制器的CAN設(shè)備號CAN設(shè)備參數(shù)是指設(shè)備索引號和第幾路CAN。 {CString str。i8。 (str)。i2。 (str)。 CAN設(shè)備連接功能的實現(xiàn)實現(xiàn)設(shè)備連接才能有效的進(jìn)行通訊,在監(jiān)控界面中,如沒有連接上設(shè)備,當(dāng)點擊“連接”按鈕時則彈出打開設(shè)備失敗。 Sleep(500)。 VCI_CloseDevice(m_devtype,m_devind)。 }在設(shè)備的連接設(shè)計中,函數(shù)調(diào)用了CAN借口庫函數(shù)DWORD __stdcall VCI_CloseDevice(DWORD DevType, DWORD DevIndex)。PPSID發(fā)送方接收方優(yōu)先級命令頻率消息長01000000001上位機控制器1觸發(fā)1字節(jié):為1個字節(jié)字節(jié)順序位順序內(nèi)容說明第1字節(jié)0 bit啟動命令1:啟動,0:停止設(shè)計CAN啟動需調(diào)用啟動CAN函數(shù)DWORD __stdcall VCI_StartCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex)。 if(VCI_StartCAN(m_devtype,m_devind,m_cannum)==1) { ShowInfo(啟動成功,0)。 str=啟動失敗。 }}在復(fù)位期間,可以對驗收碼寄存器、驗收屏蔽寄存器、總線定時寄存器0、總線定時寄存器驗收濾波器、模式寄存器這些寄存器進(jìn)行訪問。設(shè)計復(fù)位CAN時則需調(diào)用復(fù)位函數(shù)DWORD __stdcall VCI_ResetCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex)。 if(VCI_ResetCAN(m_devtype,m_devind,m_cannum)==1) {//GetDlgItem(IDC_BUTTON_STARTCAN)EnableWindow(true)。 } else { CString str。 ShowInfo(str,2)。 (()1)。而ShowInfo函數(shù)的功能是使信息顯示在List Box中。協(xié)議總是指某一層的協(xié)議。在計算機網(wǎng)絡(luò)中用于規(guī)定信息的格式以及如何發(fā)送和接收信息的一套規(guī)則稱為網(wǎng)絡(luò)協(xié)議或通信協(xié)議 也就是連入網(wǎng)絡(luò)的計算機都要遵循的一定的技術(shù)規(guī)范,關(guān)于硬件、軟件和端口等的技術(shù)規(guī)范。CAN協(xié)議是建立在OSI 7層開放互連參考模型基礎(chǔ)之上的。CAN的應(yīng)用層協(xié)議必須由CAN 用戶自行定義,或采用一些國際組織制訂的標(biāo)準(zhǔn)協(xié)議。數(shù)據(jù)場的長度可以為0。只在總線空閑時,才允許站開始發(fā)送(信號)。標(biāo)準(zhǔn)格式和擴(kuò)展格式仲裁場的格式不同,在標(biāo)準(zhǔn)格式中,仲裁場有11位標(biāo)識符和遠(yuǎn)程發(fā)送請求位組成,標(biāo)識符位為ID—28至ID—18,而在擴(kuò)展幀中,仲裁場由29位標(biāo)識符和替代遠(yuǎn)程請求(SSR)位,標(biāo)識位和遠(yuǎn)程發(fā)送請求位組成,標(biāo)識符位為ID—28至ID—0。標(biāo)識符分為標(biāo)準(zhǔn)格式標(biāo)識符和擴(kuò)展格式標(biāo)識符。這些位以ID—28至ID—18的順序發(fā)送,最低位為ID—18,其中最高7位(ID—28至ID—22)必須不是全“隱性”,而擴(kuò)展格式標(biāo)識符與標(biāo)準(zhǔn)格式不同,擴(kuò)展格式由29位組成,擴(kuò)展格式分為兩部分:前11位以ID—28至ID—18的順序發(fā)送。基本ID確定了擴(kuò)展格式的優(yōu)先權(quán),而擴(kuò)展ID由18位組成,它以ID—17到ID—0的次序發(fā)送。RTR位(標(biāo)準(zhǔn)格式和擴(kuò)展格式)在數(shù)據(jù)幀中,RTR必須是“顯性”電平,而在遠(yuǎn)程幀中,RTR必須是“隱性”電平。擴(kuò)展ID在SRR位后發(fā)送。這樣,標(biāo)準(zhǔn)格式和擴(kuò)展格式的沖突由于擴(kuò)展格式的基本ID與標(biāo)準(zhǔn)格式的工D相同而告解決。IDE位對應(yīng)于擴(kuò)展格式屬于仲裁場,對應(yīng)于標(biāo)準(zhǔn)格式屬于控制場,工DE在標(biāo)準(zhǔn)格式中以“顯性”電平發(fā)送,而在擴(kuò)展格式中為“隱性”電平。識別符:識別符的長度為11位。RTR位:該位在數(shù)據(jù)幀里必須為“顯性”,而在遠(yuǎn)程幀里必須為“隱性”。所發(fā)送的保留位必須為“顯性”。數(shù)據(jù)長度代碼(DLC):數(shù)據(jù)長度代碼指示了數(shù)據(jù)場中字節(jié)數(shù)量。數(shù)據(jù)場由數(shù)據(jù)幀中的發(fā)送數(shù)據(jù)組成。數(shù)據(jù)字節(jié)數(shù)目DLC3DLC2DLC1DLC00dddd1dddr2ddrd3ddrr4drdd5drdr6drrd7drrr8rdddCRC場包括CRC序列(CRC SEQUENCE),其后是CRC界定符(CRCDELIMITER)。為進(jìn)行CRC計算,被除的多項式系數(shù)由無填充位流給定,組成這些位流的成分是:幀起始、仲裁場、控制場、數(shù)據(jù)場(假如有),而15個最低位的系數(shù)是0。為了實現(xiàn)這個功能,可以使用15位的位移寄存器CRC_RG(14:0)。CRC 序列(CRC SEQUENCE)的計算如下:CRC_RG = 0。CRCNXT = NXTBIT EXOR CRC_RG(14)。 // 寄存器左移1 位CRC_RG(0) = 0。ENDIFUNTIL (CRC 序列開始或存在一個錯誤條件)應(yīng)答場長度為2個位,包含應(yīng)答間隙和應(yīng)答界定符。當(dāng)接收器正確地接收到有效的報文,接收器就會在應(yīng)答間隙期間(發(fā)送ACK信號)向發(fā)送器發(fā)送一“顯性”的位以示應(yīng)答。ACK界定符:ACK界定符是ACK場的第二個位,并且是一個必須為“隱性”的位。:幀結(jié)束表示一幀數(shù)據(jù)的結(jié)束。幀類型存在標(biāo)準(zhǔn)的和擴(kuò)展幀兩種格式。同數(shù)據(jù)幀相反,遠(yuǎn)程幀的RTR位是“隱性”。DLC的數(shù)據(jù)值是獨立的,它可以被標(biāo)注為允許范圍0~8中的任何數(shù)值。RTR位極性指出所發(fā)送幀是數(shù)據(jù)幀(RTR位為“顯性”)還是遠(yuǎn)程幀(RTR位為“隱性”)。為了正確的終止錯誤幀,一種“錯誤認(rèn)可”節(jié)點可以使總線處于“總線空閑”狀態(tài)至少三位時間(如果在“錯誤認(rèn)可”接收器存在本地錯誤),因而總線不被加載至100%?;顒渝e誤標(biāo)志由6個連續(xù)“顯性”位組成,而認(rèn)可錯誤標(biāo)志由6個連續(xù)的“隱性”位組成,除非它由來自其它節(jié)點的“顯性”位沖調(diào)重寫。超載標(biāo)志和超載界定符。由前一個超載條件引起的超載幀起點,僅允許在期望間歇場的第一位時間開始,而由后一個超載條件引起的超載幀在檢測到“顯性”位后一位開始。超載標(biāo)志由6個“顯性”位組成。超載標(biāo)志形成破壞了間歇場的固定形式。(在間歇場第三位期間檢測到“顯性”位的情況下,節(jié)點將不能正確理解超載標(biāo)志,而將6個“顯性”位的第一位理解為幀起始)第6個“顯性”位違背引起出錯條件的位填充規(guī)則。超載界定符與出錯界定符具有相同的形式。在此時點上,總線上的每個站均完成送出超載標(biāo)志,并且所有站一致地開始發(fā)送剩余7個“隱性”位。相反,在超載幀和出錯幀前面沒有幀空間,并且多個超載幀前面也不被幀空間分隔。此時,總線是開放的,因而任何需要發(fā)送的站均可訪問總線。當(dāng)檢測到總線上的“顯性”位將被理解為幀起始。該軟件將利用CAN和VC共同開發(fā),用戶應(yīng)用層是軟件系統(tǒng)的頂層,他實際上就是一個執(zhí)行程序,實現(xiàn)對各種儀器模塊的調(diào)度,包括初始化及各個模塊子系統(tǒng)的配置,最后實現(xiàn)對導(dǎo)彈上各種數(shù)據(jù)的同時讀取,并以波形的形式顯示出來,用來觀察各個信號的幅度大小、頻率大小、相位關(guān)系及各種時序關(guān)系。該程序設(shè)計最主要的部分就是數(shù)據(jù)采集軟件模塊的設(shè)計,他的主要任務(wù)就是完成對數(shù)據(jù)的采集、波形的顯示、數(shù)據(jù)的存儲和數(shù)據(jù)的回放。Visual C++、多線程、空閑操作等多種方式滿足監(jiān)控程序的這些要求。由于Windows是一種多任務(wù)操作系統(tǒng),不像DOS中斷中有諸多函數(shù)不能使用的限制,所以比較適合于控制系統(tǒng)的編程。 CAN數(shù)據(jù)傳輸系統(tǒng)構(gòu)成及工作原理CAN實現(xiàn)總線分配的方法, 對于多節(jié)點信息數(shù)據(jù)采集,可保證當(dāng)不同的節(jié)點申請總線存取時,明確地進(jìn)行總線分配。在系統(tǒng)中作為終端的兩塊電腦,其內(nèi)部還裝有一個數(shù)據(jù)傳遞終端(有時數(shù)據(jù)傳遞終端安裝在電腦外部)。同時CAN控制器也接收收發(fā)器收到的數(shù)據(jù),處理數(shù)據(jù)并傳給微處理器2. CAN收發(fā)器是一個發(fā)送器和接收器的組合,它將CAN控制器提供的數(shù)據(jù)轉(zhuǎn)化成電信號并通過數(shù)據(jù)總線發(fā)送出去,同時,它也接收總線數(shù)據(jù),并將數(shù)據(jù)傳到CAN控制器。4. CAN數(shù)據(jù)總線用以傳輸數(shù)據(jù)的雙向數(shù)據(jù)線,分為CAN高位(CANhigh)和低位(CAN—low)數(shù)據(jù)線。為了防止外界電磁波干擾和向外輻射,CAN總線采用兩條線纏繞在一起,兩條線上的電位是相反的,如果一條線的電壓是5V,另一條線就是0V,兩條線的電壓和總等于常值。 CAN數(shù)據(jù)采集與數(shù)據(jù)通訊本設(shè)計中將數(shù)據(jù)采集節(jié)點檢測信號通過USBCAN_II智能CAN接口卡采集、處理。數(shù)據(jù)具體通訊描述如下::對于多個節(jié)點同時向總線上發(fā)送同類型數(shù)據(jù)時,首先讀狀態(tài)寄存器的值,判斷能否開始發(fā)送,不能發(fā)送則在暫存隊列中等待。:對于多個節(jié)點同時向總線上發(fā)送數(shù)據(jù)時,總線就根據(jù)優(yōu)先級讓級別較低的節(jié)點主動退出發(fā)送,而級別最高的節(jié)點可以不受影響地繼續(xù)傳送數(shù)據(jù),優(yōu)先級次之的節(jié)點緊跟著發(fā)送數(shù)據(jù),直到優(yōu)先級最低的節(jié)點發(fā)送完為止。程序進(jìn)行更新、控制其啟動、停止、時鐘同步、清除緩沖數(shù)據(jù)操作。各種類型信號采集的難易程度差別很大,尤其是在采樣頻率、振幅等幾方面。PPSID發(fā)送方接收方優(yōu)先級命令頻率消息長11000010001控制器上位機3和波形頻率有關(guān)8字節(jié)給定曲線作為理想的曲線,并為實時曲線起到了參考的作用,實時數(shù)據(jù)曲線設(shè)計程序代碼如下:void CMyChart::CreateRandData(){for (n = 100 VALUE_TIME_GAP。 ++n) { double m = 2**pinlv*(n+m_nTimeStart)/1000。 m_arrVlaue[n] = (int)m。實時趨勢曲線要反映現(xiàn)場數(shù)據(jù)的實時性,以監(jiān)控該被測控變量在現(xiàn)場工況變化的情況,因此需要顯示控制效果的實時趨勢動態(tài)變化情況。crCoordinate, BOOL bFull){ for (int n = 0。 ++n) { m_arrVlaue[n] = m_arrVl
點擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1