CAN總線學(xué)習(xí)心得摘抄_第1頁(yè)
CAN總線學(xué)習(xí)心得摘抄_第2頁(yè)
CAN總線學(xué)習(xí)心得摘抄_第3頁(yè)
CAN總線學(xué)習(xí)心得摘抄_第4頁(yè)
CAN總線學(xué)習(xí)心得摘抄_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 . . . CAN總線學(xué)習(xí)心得 摘抄.txt54就讓昨日成流水,就讓往事隨風(fēng)飛,今日的杯中別再盛著昨日的殘痕;唯有珍惜現(xiàn)在,才能收獲明天。原文來自:?jiǎn)枺旱谝?,接收信息的工作?jié)點(diǎn)需要什么響應(yīng)來確認(rèn)?第二,接收的子程序未調(diào)好是否意味收發(fā)兩方均無法調(diào)試?如何確認(rèn)發(fā)送成功?答:網(wǎng)絡(luò)上同一速率的正常工作節(jié)點(diǎn)響應(yīng):1、已設(shè)定速率;2、在工作狀態(tài)。完全是由硬件(比如:SJA1000芯片)完成ACK確認(rèn)。問:請(qǐng)問單個(gè)can 節(jié)點(diǎn)可以進(jìn)行調(diào)試嗎?是一塊一路的can適配卡,使用端口地值300h,我使用winio進(jìn)行讀寫的,可為什么,所有的單元讀出來得數(shù)據(jù)都是ff?是因?yàn)橹皇褂昧藛蝹€(gè)節(jié)點(diǎn)can控制器不能正常工作嗎

2、?答:sja可實(shí)現(xiàn)單節(jié)點(diǎn)調(diào)試;ff應(yīng)該是地址空間錯(cuò)誤;問:我還是不太明白,你說的地址空間錯(cuò)誤,是說sja1000的地址沒有選通,地址沒有指向sja1000的寄存器嗎?答:首先把讀寫片選信號(hào)產(chǎn)生了再去管sja1000吧。問:我用驗(yàn)收濾波器來選擇接收CAN2.0B的一幀數(shù)據(jù),29位中只對(duì)其中幾位進(jìn)行判別,其他位又不是定值,請(qǐng)問這該怎么辦?可不可以掩住不關(guān)心的位?用圍應(yīng)該也可以實(shí)現(xiàn),不過那樣感覺不好,請(qǐng)教大家,!答:相關(guān)/不相關(guān)位最終都可以轉(zhuǎn)化為圍描述。問:請(qǐng)教關(guān)于2119 can驗(yàn)收過濾器的問題請(qǐng)問:1、在canstarterii應(yīng)用指南第42頁(yè)中提到的“fullcan標(biāo)準(zhǔn)地址”與“標(biāo)準(zhǔn)單個(gè)地址”

3、有何區(qū)別? 2、第45頁(yè)表2.34的“值”“字”“行”“id索引”是什么概念?答:fullcan標(biāo)準(zhǔn)地址放置的是需要自動(dòng)執(zhí)行接收存儲(chǔ)的id索引表格(fullCAN功能,查看相關(guān)的介紹);標(biāo)準(zhǔn)單個(gè)地址僅僅是AF接收/屏蔽標(biāo)準(zhǔn)id的索引表格,即和一般的接收過濾理解一致。答:fullcan模式下自動(dòng)把符合的幀放在后面的ram里 標(biāo)準(zhǔn)單個(gè)把符合的數(shù)據(jù)放在接收寄存器中問:將“LPC 系列ARM 微控制器的CAN 接收過濾設(shè)置” 一文中的LTU.hpp加入原來的工程中(原來是用c做的),編譯時(shí)有好多錯(cuò)誤,用的確實(shí)是C編譯器,可感覺它對(duì)c中的關(guān)鍵詞不認(rèn)識(shí),請(qǐng)大家指教,!答: 里頭好像僅僅作用域符號(hào)“:”不是

4、C的之外沒什么特別之處。問:以前我用的是485通訊,通訊協(xié)議里面都定義了包起始和包結(jié)束(CRC可以幫助驗(yàn)證是否包結(jié)束)。而對(duì)于CAN這個(gè)東東,比如我要發(fā)送一個(gè)信息包有100個(gè)字節(jié),發(fā)送倒沒有問題,對(duì)于接收端,我怎樣去判斷包起始和包結(jié)束呢?困惑ing請(qǐng)斑竹和各位大蝦們指教!答:CAN-bus由硬件完成幀的錯(cuò)誤控制、數(shù)據(jù)處理,因此,協(xié)議比RS-485會(huì)方便許多。比如擴(kuò)展幀格式:幀頭(源地址、目的地址、命令字、輔參數(shù)) 數(shù)據(jù)場(chǎng)(分段碼、07個(gè)數(shù)據(jù)) 超過8個(gè)字節(jié)/幀時(shí),需要分幀處理。 具體方式,可以參考網(wǎng)頁(yè)的CAN應(yīng)用方案訊協(xié)議篇、RS-485升級(jí)篇。問:我的應(yīng)用為:一個(gè)主機(jī)(計(jì)算機(jī))會(huì)和很多的從機(jī)

5、連接,每個(gè)從機(jī)都將通過網(wǎng)絡(luò)連接,所以必須使用HUB,你們的ZNE-100將接在HUB上。計(jì)算機(jī)只要和HUB連接就可以了。不知道我該如何設(shè)置ZNE-100?還有此HUB還能連接其他的計(jì)算機(jī)嗎?答:ZNE-100嵌入式以太網(wǎng)轉(zhuǎn)串口模塊使用說明 問:對(duì)sja1000進(jìn)行硬件復(fù)位時(shí),要求sja1000的片選同時(shí)有效嗎?比如用138譯碼器的y1選通sja1000的復(fù)位線,來達(dá)到使sja1000復(fù)位的目的,那么此時(shí)要求片選線有效嗎?答:見SJA1000數(shù)據(jù),異步操作,不要求片選有效。問:請(qǐng)問怎樣把sja1000分時(shí)復(fù)用AD總線與pc104的數(shù)據(jù)線和地址線連接? 答:周立功公司已經(jīng)有現(xiàn)成的“PC104-CA

6、N”接口卡提供。問:DP51+上BasicCAN測(cè)試程序的問題 在DP51+上用BasicCAN測(cè)試程序按鍵操作向其它節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),總出現(xiàn)E-F8的錯(cuò)誤,檢查連線和波特率的設(shè)置也沒有問題,真不知道是什么原因?也沒法收到其它節(jié)點(diǎn)發(fā)送過來的數(shù)據(jù)。有可能這是收發(fā)器TJA1050T出現(xiàn)問題了嗎?答:可能是組建的CAN網(wǎng)絡(luò)中有其他節(jié)點(diǎn)未設(shè)置正確,比如波特率.ZLG公布的代碼都經(jīng)過測(cè)試,附有文檔說明。問:在開發(fā)過程中遇到如下問題:(公司沒有上ARM,出于對(duì)其狂熱的追求,自己出銀子買的DEMO板)1:想完成自發(fā)自收,CANMOD_STMBIT=1,CANCMR_SRRBIT=1,觀察寄存器窗口,接收REG

7、 容沒有發(fā)生變化,(自測(cè)模式是否需要搭建一個(gè)CAN總線平臺(tái)?我只有一個(gè)DEMO和 一個(gè)自己做的CAN總線收發(fā)器),接收中斷也未發(fā)生,用的是周工最新的驅(qū)動(dòng).2. 如果只想接收ID為0x1234的信息,不用FULLCAN模式,該怎樣設(shè)置才對(duì)呢?是不是這樣:eFullCan禁能,則只需設(shè)置標(biāo)準(zhǔn)幀單個(gè)起始地址REG,把相應(yīng)的ID填入就行了呢3. 每次調(diào)用 CanSendData(CAN1,cSlfSendCmd,TempBufPt),都將導(dǎo)致CANMOD_RM=1,發(fā)送錯(cuò)誤計(jì)數(shù)器累加,好象是總線離線狀態(tài).郁悶啊還請(qǐng)斑竹和大蝦們指點(diǎn)迷津答:CAN總線至少需要2個(gè)節(jié)點(diǎn)才好調(diào)試,要不怎樣才能組成總線呢? 答

8、:可以下載代碼,請(qǐng)參照配套的文檔進(jìn)行測(cè)試。至少要加CAN收發(fā)器、終端電阻,建立再在PC上安裝1個(gè)CAN接口卡,比如CAN232接口卡?;貜?fù):原來采用的總線收發(fā)器的前端光耦出了問題!大家了!特別感周立功的技術(shù)支持工程師!問:如果要在CANBUS上供電12V或27V,該怎么做?因?yàn)镃AN是平衡傳輸,要用差分信號(hào)來同步,現(xiàn)在要提高電平,該怎么做,以前請(qǐng)教過,但都只是說設(shè)計(jì)接口電路就可以實(shí)現(xiàn),但是太模糊了,能否有過經(jīng)驗(yàn)者提供一點(diǎn)有實(shí)際操作的思路。感激不盡。感你的關(guān)注!答:1,加一組電源線;2,收發(fā)器就是差分驅(qū)動(dòng)器。問:如果加電源線那還是總線供電嗎?我的意思是兩條線上既傳信號(hào)又傳電,請(qǐng)教可以做到嗎?答:

9、在CAN應(yīng)用中的總線供電常指的是通過4芯或5芯通信線纜供電;收發(fā)器出來的仍然是基帶信號(hào)沒有調(diào)制的所以不容易實(shí)現(xiàn)線纜復(fù)用。問:請(qǐng)各位高手解決:SJA1000收發(fā)擴(kuò)展幀正常,但是不接收標(biāo)準(zhǔn)幀答:我認(rèn)為SJA1000不會(huì)出現(xiàn)這種現(xiàn)象,除非發(fā)送方有錯(cuò)誤.問:對(duì)FullCAN模式不是很理解,哪位老師給詳細(xì)介紹一下,! 答:簡(jiǎn)而言之,就是驗(yàn)收濾波方式的增強(qiáng),BasicCAN只有一種濾波,PeliCAN有2種濾波,可以加上廣播信息,而FullCAN就是有更多種濾波。問:急,請(qǐng)各位老師近來看看2119 CAN驗(yàn)收濾波器問題 設(shè)置如下:我用的是匯編:AF_MEM EQU 0xE0038000LDR R0,=AF

10、_MEM ;讀取驗(yàn)收濾波器RAM的起始地址LDR R1,#0x25522553 ;我需要標(biāo)識(shí)為552和553的接收,CAN1控制器STR R1,R0LDR R0,=AFMR ;讀取驗(yàn)收濾波器模式寄存器地址MOV R1,#0x00 ;這樣啟動(dòng)濾波器對(duì)嗎?STR R1,R0這樣的情況下,CAN1接收中斷不響應(yīng)任何數(shù)據(jù),這是為什么?中斷機(jī)制完好,旁路濾波器時(shí)候全部響應(yīng)的.關(guān)于CANSFF_sa寄存器該如何設(shè)置才能完成濾波接收?請(qǐng)指教。答:修改RAM表格前應(yīng)該先置位AccBP位LDR R0,=AFMR ;讀取驗(yàn)收濾波器模式寄存器地址MOV R1,#0x02 ;置位AccBP,以便設(shè)置過濾表格 STR

11、R1,R0答:參考<LPC系列ARM微控制器的CAN接收過濾設(shè)置> 問:在使用周的底層驅(qū)動(dòng)時(shí)出了點(diǎn)問題,不知是什么原因 用LPC2119中斷方式做了一個(gè)轉(zhuǎn)發(fā)器件,中斷很正常,中斷程序調(diào)用寫環(huán)形環(huán)形緩沖區(qū);主程序是讀環(huán)形緩沖區(qū),但是讀時(shí)發(fā)生了數(shù)據(jù)中止,不解,就是下面第二句出了問題stcRxBUF *RxBuf;*RxBuf = CANRcvBufApp.RcvBufCAN1CANRcvBufApp.ReadPoint1;答:資料已更新;查詢方式會(huì)比較方便。問:過載幀與錯(cuò)誤幀是怎么使用的啊對(duì)數(shù)據(jù)幀,和遠(yuǎn)程幀很好理解,也很好使用,但是對(duì)過載和錯(cuò)誤就不知道在什么地方用了,也不知道該怎么用了

12、???請(qǐng)各位指點(diǎn)答:CAN控制器自己管理問:錯(cuò)誤消極中斷和錯(cuò)誤警報(bào)中斷該怎么處理呢?只是簡(jiǎn)單的復(fù)位么?這兩種錯(cuò)誤有什么區(qū)別呢?不太明白答:按流程可以不處理,參考示例。問:仲裁丟失該怎么理解呢?仲裁丟失算不算是一種錯(cuò)誤呢?仲裁丟失一般的處理是怎么樣的呢?只是讀取仲裁丟失捕捉寄存器么?答:不算,僅僅提供一個(gè)網(wǎng)絡(luò)參考信息,例如網(wǎng)絡(luò)負(fù)載/id分配是否合理等。問:為什么在分析儀發(fā)出第三偵后,2119才產(chǎn)生接收中斷,而且收到的是第一偵的數(shù)據(jù),WritePoint2 = 1。如果分析儀只發(fā)出一偵數(shù)據(jù),不能產(chǎn)生中斷,怎么回事?答:第三幀才產(chǎn)生中斷可能是溢出中斷,因?yàn)榻邮罩袛嗪鸵绯鲋袛嗟念~中斷號(hào)是不同的,菲利普的

13、早期資料中CAN的中斷號(hào)有錯(cuò),請(qǐng)下載最新資料!答:我試過中斷模式,沒問題,可以產(chǎn)生中斷,可是周的低層驅(qū)動(dòng)關(guān)于環(huán)形緩沖區(qū)那部分可能有些問題。中斷后調(diào)用寫數(shù)據(jù)緩沖區(qū),然后在主程序里循環(huán)讀環(huán)形緩沖區(qū)。忘了是在哪里會(huì)出現(xiàn)數(shù)據(jù)中止,按說是不應(yīng)該出現(xiàn)的。問:請(qǐng)教RTR位在濾波中的作用?請(qǐng)教各位老師:濾波器中的rtr位參不參與濾波,我在實(shí)驗(yàn)中有兩個(gè)節(jié)點(diǎn),采用雙濾波標(biāo)準(zhǔn)幀通信,我設(shè)置接收方的acr0,acr1,acr2,acr3寄存器為00,00,00,amr0,amr1,amr2,amr3分別是00,0f,00,ff.發(fā)送方ID1,ID2為00,20;但是發(fā)送方的,只要是20和30,該幀數(shù)據(jù)都能接收,其它的

14、如40,50,都不行,我不知道為什么?是不是rtr位不參與濾波,發(fā)送方在發(fā)送的時(shí)間不必要考慮此位。郁悶的不行,懇請(qǐng)幫助!答:就把它看作像id那樣的一個(gè)bit看待吧。問:SJ1000T中基本模式下只能檢測(cè)8位的ID,但發(fā)送時(shí)確有11位ID,請(qǐng)問ID2-0有什么用?答:你指的是BasicCAN模式下的"驗(yàn)收過濾";其實(shí),兩種模式的所有11位或29位都有效。問:BasicCAN模式下的"驗(yàn)收過濾"只能過濾ID103,請(qǐng)問ID20對(duì)接受有影響嗎?資料顯示并沒有對(duì)ID20進(jìn)行核對(duì)。答:BasicCAN模式?jīng)]有對(duì)ID20進(jìn)行核對(duì)。問:請(qǐng)問在雙絞線上傳輸?shù)腃AN信號(hào)波

15、形應(yīng)該是怎么樣的?信號(hào)的幅值和頻率?另外,能否推薦使用在車輛上的電纜型號(hào)以與節(jié)點(diǎn)與總線相接的接插件型號(hào)!答:汽車類型不同,應(yīng)用有所不同,建議參考SAE J1939協(xié)議容中的規(guī)定,制定自己的規(guī)。問:有沒有CAN控制器+單片機(jī)(不包括CAN驅(qū)動(dòng)器),成本不超過15元的方案?可付報(bào)酬!答:目前我們沒有能力實(shí)現(xiàn)。答:io模擬低速can。問:請(qǐng)問CAN總線是不是不能提供總線供電?如果希望總線供電該如何做?誰能提供一點(diǎn)關(guān)于CAN能總線供電的資料???答:CAN 或 DeviceNet 都可以總線供電,根據(jù)需要選擇適合的應(yīng)用。CAN 沒有規(guī)定物理層.是一種相當(dāng)靈活的現(xiàn)場(chǎng)總線。DeviceNet、CANopen

16、均是基于CAN-bus協(xié)議,自定協(xié)議也不難。問:請(qǐng)問遠(yuǎn)程幀的作用是什么?在什么情況下需要使用它?答:那是一種可用可不用的幀資源.問:基地址選了0xda00,偏移量選擇0000后,sja1000得寄存器的地址是從0xda000開始嗎?答:對(duì)的。問:在每次只收到一幀的情況下,我置位清除接受緩存都沒問題,但是一旦在短時(shí)間接收到2幀或以上時(shí)(短時(shí)間指,第一幀還未完全被微控制器接收而第二幀已經(jīng)到來)我收完一幀,置位清緩就會(huì)出錯(cuò)。然后我復(fù)位繼續(xù)接收下一幀微控制器就不能從sja1000接收了,為什么會(huì)這樣那?置位清緩不是只清掉第一幀數(shù)據(jù)么?如果只清第一幀數(shù)據(jù)的話,應(yīng)該第二幀可以收到的啊?這是怎么回事那?要怎

17、么解決那?了。答:不會(huì)這樣的,查查其他原因。 問:請(qǐng)教版主CAN總線用于爆炸性氣體環(huán)境可以嗎? 在網(wǎng)上搜索了一下,看到的 是幾年前發(fā)表的 文章說CAN總線沒有解決防爆問題,不知現(xiàn)在有沒解決在爆炸性氣體環(huán)境使用CAN總線通信。如果沒有那只好用以前的 485了 改成hart還是更麻煩答:在現(xiàn)場(chǎng)總線控制系統(tǒng)的調(diào)試與開發(fā)-國(guó)防工業(yè)的技術(shù)書籍第8頁(yè),列出了CAN-bus是本安的總線之一。問:請(qǐng)問Can232和can232B轉(zhuǎn)換器的通訊協(xié)議是否必須和計(jì)算機(jī)相連才能更改我想用轉(zhuǎn)換器直接與PLC相連不知如何設(shè)置通訊協(xié)議。答:看應(yīng)用場(chǎng)合而定,可以不用設(shè)置協(xié)議。這一份文檔中有很好的說明!問:關(guān)于節(jié)點(diǎn)發(fā)送的問題向你

18、請(qǐng)教。 發(fā)現(xiàn)經(jīng)常我的硬件復(fù)位有時(shí)不是成功的,導(dǎo)致發(fā)送不成功。讀狀態(tài)寄存器SR0x04,或0x44;請(qǐng)問這種情況是怎么回事?答:“硬件復(fù)位有時(shí)不是成功的”不容易理解;建議看一下前面的貼,或的參考程序。問:那請(qǐng)問:硬件復(fù)位后,我發(fā)送前讀狀態(tài)寄存器SR0x04,也就是“當(dāng)前請(qǐng)求的發(fā)送未處理完”,這種情況下發(fā)送時(shí)不能成功的。有時(shí)候硬件復(fù)位后發(fā)送前讀狀態(tài)寄存器SR0x0c,這種情況下發(fā)送時(shí)可以的。請(qǐng)教:為什么硬件復(fù)位后還會(huì)出現(xiàn)像前面的那種狀態(tài)寄存器SR0x04,也就是“當(dāng)前請(qǐng)求的發(fā)送未處理完”的情況,應(yīng)該如何處理?答:硬件復(fù)位成功后 SR= 0X0C ;否則就是硬件方面存在問題。建議用公開的電路與程序,

19、或者直接在DP系列實(shí)驗(yàn)儀上測(cè)試。問題1:在通訊時(shí)出現(xiàn)錯(cuò)誤,用軟件復(fù)位能否將錯(cuò)誤清除?問題2:軟件復(fù)位是否將以前設(shè)置的參數(shù)改為默認(rèn)值?是否需要重新初始化?答:1.可以;2否,是 問:為什么我在復(fù)位模式下CDR寄存器寫不進(jìn)那?其他寄存器都可以寫進(jìn)去,就是CDR寫不進(jìn)去。不明白為什么,和其他寄存器一樣的寫法,語(yǔ)句,但是無論寫什么進(jìn)去,讀出來都是00H。可以幫忙解答以下么?了注:無論讀寫都是在復(fù)位模式下答:芯片SJA1000的硬件復(fù)位會(huì)使CDR=0x00。求助,為何我寫不了CAN地址大于8的寄存器?SJA1000的基地址是BF00H,我對(duì)SJA1000的寄存器在復(fù)位模式下進(jìn)行寫,寫完讀出(當(dāng)然是對(duì)于可

20、讀寫的)發(fā)現(xiàn)對(duì)于CAN地址大于8的寫入一定的數(shù)之后再讀出,讀出的數(shù)大部分是FF,而不是我寫如的數(shù),哪位大俠可以提供幫助?。在PELICAN模式下。答:你在basic模式下試一下。答:也可能是硬件接線問題。問:SAE J1939的中文資料在哪里找?答:一般不會(huì)有中文資料,看應(yīng)用方案-通訊篇。 請(qǐng)問版主與各位大蝦:汽車CAN節(jié)點(diǎn)與工控CAN節(jié)點(diǎn)的?區(qū)別在什么地方答:通訊距離、應(yīng)用層協(xié)議不同,電路稍有不同,參考資料。 問:我現(xiàn)在正在做與CAN總線相關(guān)的課題,買了CANstarter-I 開發(fā)套件,現(xiàn)在差不多快看完了。不過現(xiàn)在有一個(gè)問題,就是各位在自己做實(shí)驗(yàn)時(shí)硬件是怎么做的,是自己搭手工焊接的電路板,

21、還是用Protel制作PCB圖后印刷出電路板來?Protel我以前從未學(xué)過,要按電路圖去自己做PCB的話周期太長(zhǎng),可自己焊又不能保證電路板的穩(wěn)定性?答:配套光盤中有PROTEL格式的CAN節(jié)點(diǎn)原理圖,PCB可以參考實(shí)驗(yàn)儀。問:我用中斷接受can總線發(fā)來的數(shù)據(jù),可是單片機(jī)怎么也進(jìn)入不了外部中斷程序?為什么?8051中關(guān)于外部中斷0的設(shè)置我都設(shè)置了,可就是進(jìn)入不了isr,如果我采用查詢接受,int/端的電平就顯示正常(低到高),一采用中斷,int/端的電平就被拉低不會(huì)變高,我在isr中設(shè)置了點(diǎn)燈測(cè)試,當(dāng)有數(shù)據(jù)時(shí)因?yàn)闊魶]亮,所以我判斷是進(jìn)入不了isr,各位老師看看這是為什么呢?答:設(shè)置電平觸發(fā),確保

22、mcu相應(yīng)中斷的其他設(shè)置正確。問:再用USBCANI時(shí),ZLGCANTest為什么不能設(shè)置波特率?那時(shí)鐘頻率是多少啊?說明書上也沒有說明啊 ?答:打開設(shè)備時(shí)定時(shí)器0、定時(shí)器1就是用于設(shè)置波特率的。詳細(xì)請(qǐng)看相關(guān)的用戶手冊(cè)。16MHz,在編程接口文檔中應(yīng)該也有說明。問:關(guān)于SJA1000的錯(cuò)誤處理! 在SJA1000的資料上可以看到,它有一個(gè)錯(cuò)誤代碼捕捉寄存器(ECC),通過查詢這個(gè)寄存器我們可以知道總線錯(cuò)誤的類型和位置信息。但在實(shí)際的應(yīng)用中,我們好像對(duì)這方面CAN總線錯(cuò)誤處理的功能用的很少,可能有時(shí)也沒考慮。一方面CAN總線的錯(cuò)誤很少發(fā)生,另一方面我們?nèi)鄙龠@方面總線發(fā)生錯(cuò)誤的的實(shí)際例子,在實(shí)際的

23、總線應(yīng)用過程中,CAN總線的錯(cuò)誤是應(yīng)該也必須考慮的,因?yàn)檫@直接影響CAN網(wǎng)通訊的質(zhì)量和可靠性。我希望各位同行能在這方面提出自己的看法。答:精華區(qū)有相關(guān)的討論貼。問:正常模式下發(fā)送,給命令寄存器賦值0X03,由于沒有另一點(diǎn)的響應(yīng),這一點(diǎn)會(huì)一直發(fā)送(在示波器的波形可以看出),我現(xiàn)在問題是,這一點(diǎn)在重新軟件復(fù)位后,就不能發(fā)送了,讀狀態(tài)寄存器 ,顯示最后一次發(fā)送未被處理成功,假如關(guān)閉電源硬件復(fù)位重新開始又可以發(fā)送了。請(qǐng)教大家可以取消CAN節(jié)點(diǎn)的發(fā)送命令嗎?用軟件怎樣實(shí)現(xiàn)?答: 請(qǐng)問你所指的軟件復(fù)位是什么?是進(jìn)入復(fù)位模式嗎?如果是的話當(dāng)然不行。答:我說的軟件復(fù)位是指使仿真器重新編譯,程序從頭運(yùn)行。就是M

24、CU給SJA1000復(fù)位模式初始化后退出復(fù)位模式,進(jìn)入工作模式后再發(fā)送 .問:大家好,我最近剛開始用can總線設(shè)計(jì)一個(gè)項(xiàng)目,目前遇到一個(gè)很大的困惑,就是在設(shè)計(jì)can智能節(jié)點(diǎn)時(shí)(WEE758+SJA1000+TJA1000),兩者的接口通訊都有問題,初始化好像過了,但用ZLGTEST軟件調(diào)試,不能正常收發(fā)數(shù)據(jù),我查了硬件電路,沒有問題,我郁悶死了,請(qǐng)問大家該從哪方面下手去找原因啊,我用的電路是CANSTART-I用戶指南里面的那個(gè)程序,不知道有沒有問題。請(qǐng)有經(jīng)驗(yàn)的人幫幫忙啊,我的時(shí)間太緊了。答:先測(cè)試你的硬件 物理連接是否通過,可以先給SJA1000寫一個(gè)值如0xAA,再訪問SJA1000讀出來

25、看是否是0小AA?答:"不能正常收發(fā)數(shù)據(jù),我查了硬件電路,沒有問題.",這不自相矛盾了嗎?1,把所sja1000當(dāng)作xdata ram測(cè)試看看是否總線連接正常,sja受控?2,發(fā)送時(shí)看看總線是否出現(xiàn)差分信號(hào)?物理連接是否正常?這就基本把硬件問題定位了。問:請(qǐng)幫忙看一下程序,! SJA1000中地址16 寫入0x88地址17 寫入0x04地址18 寫入0x03地址19 寫入0x02地址19 寫入0x01使用ZLGCANTEST軟件得到的ID應(yīng)該是多少?怎樣計(jì)算?我得出的是0x00806020,好象是右移了五位?是否正確???答:工作在PeliCAN模塊的話,參照產(chǎn)品手冊(cè)附錄2可

26、以獲得在總線上的ID值。問:輸出控制寄存器的OCMODE1和OCMODE0可以設(shè)置為四種方式,雙相、測(cè)試、正常和時(shí)鐘輸出,一般應(yīng)該選擇哪一種輸出比較好,通訊可靠性高。答:常用pushpull模式,這比較通用,適應(yīng)性較好。問:在用ZLGCANTest1.4版在調(diào)試程序時(shí),下位機(jī)發(fā)送標(biāo)準(zhǔn)數(shù)據(jù)幀,USBCAN-II智能卡收此信息下位機(jī)的號(hào)為:x00000035,如果將ZLGCANTest的打開設(shè)備對(duì)話框中的驗(yàn)收碼設(shè)為x00000035,屏蔽碼設(shè)為x00000000,為什么不能收到信息如何在ZLGCANTest中設(shè)置驗(yàn)收濾波器?(發(fā)送節(jié)點(diǎn)為x00000035,發(fā)送標(biāo)準(zhǔn)數(shù)據(jù)幀,接收端為USBCAN-II

27、智能卡)答:驗(yàn)收過濾設(shè)置為4個(gè)寄存器,但需要根據(jù)接收幀格式進(jìn)行設(shè)置,而不是簡(jiǎn)單地對(duì)應(yīng)關(guān)系。請(qǐng)參考提供的CAN控制SJA1000驗(yàn)收濾波器原理與應(yīng)用.pdf資料。問:不好意思,因?yàn)槲以谡{(diào)試中,下發(fā)的報(bào)文沒有反應(yīng),但是能收到下位機(jī)送上來的信息,我問了我們開發(fā)裝置的同事,他說可能跟ID有關(guān),所以我想再確認(rèn)一下:frameinfo.ID = (DWORD)(Send_Groupi.Buffer0 << 8) + (DWORD)Send_Groupi.Buffer1;/沒有把整個(gè)ID右移5位Data0 = Send_Groupi.Buffer2;Data1 = Send_Groupi.Buf

28、fer3;Data2 = Send_Groupi.Buffer4;Data3 = Send_Groupi.Buffer5;Data4 = Send_Groupi.Buffer6;Data5 = Send_Groupi.Buffer7;Data6 = Send_Groupi.Buffer8;Data7 = Send_Groupi.Buffer9;frameinfo.DataLen=8;/datalenmemcpy(&frameinfo.Data,Data,8);frameinfo.SendType = 0;frameinfo.RemoteFlag = 0;frameinfo.Extern

29、Flag = 0;if (VCI_Transmit(2,0,0,&frameinfo,1)=1) TRACE0("寫入成功"); else TRACE0("寫入失敗");這樣的frameinfo信息,在下發(fā)時(shí)CAN卡是否會(huì)對(duì)frameinfo.ID重新處理?答:這個(gè)ID就是發(fā)送到總線上的CAN ID。 CAN的id有11位圍或29位圍。 PCI-9810 光盤上的示代碼: VCI_CAN_OBJ senddata; senddata.SendType=sendtype; senddata.ExternFlag=frametype; senddat

30、a.RemoteFlag=frameformat; senddata.ID=id; senddata.DataLen=i; memcpy(senddata.Data,data,i); if(VCI_Transmit(m_devtype,m_devind,m_cannum,&senddata,1)=1) ListBox1->Items->Add("發(fā)送成功"); else ListBox1->Items->Add("發(fā)送失敗"); 答:檢查一下你所謂的上位機(jī)的驗(yàn)收濾波寄存器的設(shè)置回復(fù):通訊成功了,各位,錯(cuò)誤原因是我的程序中有

31、個(gè)BUG。問:用2119做了一個(gè)CAN中繼器,單向發(fā)兩邊都很正常,1M無延時(shí)的發(fā)送都可以應(yīng)付,可是雙向發(fā)發(fā)幾百幀就堵塞,很奇怪,是處理能力不夠還是怎么回事?我用的是查詢,主循環(huán)里查詢CAN1、CAN2控制器的接收狀態(tài)位,置位就轉(zhuǎn)發(fā)。感覺已經(jīng)不能再精簡(jiǎn)了,請(qǐng)大家?guī)兔υ\斷一下,!答;采用中斷接收并壓入緩沖區(qū),主程序查詢發(fā)送OK,堵塞絕對(duì)不是芯片性能引起的,除非另一方設(shè)備接收存在問題。 問:關(guān)于SJA1000的讀寫時(shí)序 我看sja1000的數(shù)據(jù)手冊(cè)上是:先是ALE鎖存信號(hào)有效對(duì)地址進(jìn)行鎖存,然后才是/CS片選信號(hào)有效(此時(shí)讀寫信號(hào),數(shù)據(jù)也有效),我得疑問是/CS信號(hào)在整個(gè)CAN通信期間不是一直有效嗎

32、?在地址鎖存時(shí)必須是無效的嗎?在CAN使用期間我如果讓/CS一直為低可以嗎?請(qǐng)知道的大俠不吝指教??!答:若不需要考慮其他地址沖突和功耗因素的可以這樣。 問:請(qǐng)教:CAN總線收發(fā)器PCA82C250的斜率電阻Rs的選擇問題。 是用47k的嗎?還是4.7k啊?哪位仁兄告訴一下,!答:如果你沒有什么特殊的要求,直接接地就行了答:47k的。問:各位大俠,我想用雙濾波進(jìn)行通訊,我想請(qǐng)教一下,另一個(gè)節(jié)點(diǎn)是不是也必須是雙濾波格式才能進(jìn)行通訊?我在通訊中設(shè)置的其中一個(gè)節(jié)點(diǎn)的0,ACR1,ACR2,分別是00,00,02,選擇的是標(biāo)準(zhǔn)幀格式;另一個(gè)節(jié)點(diǎn)的發(fā)送標(biāo)識(shí)1,標(biāo)識(shí)2分別是00,0,為什么也能夠通訊呢,按照

33、濾波器工作原理來說,只要一個(gè)濾波器通過驗(yàn)收就能通訊,可是上面00,0并沒有通過濾波器呀!我糊涂了,請(qǐng)教各位大俠,非常的感!答:友情提醒朋友,資料很多在上已發(fā)表,查找一下即可。見CAN控制器SJA1000驗(yàn)收濾波器原理與應(yīng)用。 問:標(biāo)識(shí)符確定? 假設(shè)網(wǎng)絡(luò)中有A、B兩個(gè)節(jié)點(diǎn)。A請(qǐng)求B發(fā)送數(shù)據(jù),則A發(fā)送遠(yuǎn)程幀(B標(biāo)識(shí)符+RTR)。B點(diǎn)接收到該幀后,如何判斷這是誰發(fā)來的請(qǐng)求幀?若是A點(diǎn),則B點(diǎn)發(fā)送數(shù)據(jù)幀(A標(biāo)識(shí)符+RTR+數(shù)據(jù)長(zhǎng)度+數(shù)據(jù))。關(guān)鍵的問題是,在多個(gè)節(jié)點(diǎn)組成的系統(tǒng)中,各節(jié)點(diǎn)之間如何管理?相互之間如何識(shí)別和握手?答:應(yīng)用層協(xié)議的建立,請(qǐng)參考CAN-bus 現(xiàn)場(chǎng)總線基礎(chǔ)方案-通訊篇。答:每個(gè)結(jié)點(diǎn)

34、都是對(duì)等的,你只需要規(guī)劃好發(fā)送結(jié)點(diǎn)的ID 與接收結(jié)點(diǎn)的acr,amr的對(duì)應(yīng)關(guān)系就好了??梢赃@樣理解,每個(gè)結(jié)點(diǎn)的數(shù)據(jù)都發(fā)送到了總線上,至于這個(gè)數(shù)據(jù)哪個(gè)結(jié)點(diǎn)能接收到,就是決定于這個(gè)結(jié) 點(diǎn)的acr,amr了,當(dāng)然要比照發(fā)送結(jié)點(diǎn)的ID。新手上路:兩個(gè)CAN節(jié)點(diǎn)相連時(shí),CAN高線連CAN高線、CAN低線連CAN低線,還是交叉相連?答:CAN_H連接CAN_H,CAN_L連接CAN_L。問:兩個(gè)CAN節(jié)點(diǎn)(51+sja1000+82c250,自測(cè)試通過),id分別是1和2,Peli模式,波特率一樣,發(fā)送端發(fā)出一幀(擴(kuò)展幀)后,SR由0C變成60(表示:正在發(fā)送且出錯(cuò)),ECC變成D9(表示:發(fā)送時(shí)應(yīng)答時(shí)間

35、段填充錯(cuò)),why? 是因?yàn)榱硪粋€(gè)節(jié)點(diǎn)未發(fā)出應(yīng)答么?應(yīng)答應(yīng)由硬件自動(dòng)完成吧?那時(shí)因?yàn)槭裁茨??(波特?00kbps,BTR0=41H,BTR1=B9H)答:應(yīng)答有硬件自動(dòng)完成。問:我現(xiàn)在沒有CAN的接收器,就簡(jiǎn)單的把CAN的兩個(gè)輸入、輸出連起來,發(fā)現(xiàn)輸出有信號(hào),輸入沒信號(hào),不知這樣可不可以?有沒有更好的辦法來檢驗(yàn)我設(shè)計(jì)的電路?答:將CAN控制器的TDx與RDx連接可以進(jìn)行測(cè)試,具體參考相關(guān)的CAN控制器手冊(cè)。本人不提倡這種方法,因?yàn)闆]有實(shí)際應(yīng)用價(jià)值。詢問sja1000在16mhz晶振下波特率問題 我看了sja1000的總線定時(shí)寄存器BTR0和BTR1的設(shè)置問題,我看了多個(gè)資料上的數(shù)據(jù),感覺不太

36、統(tǒng)一,發(fā)貼確認(rèn)一下,16MHZ情況下是這樣的嗎?,麻煩了。另外,我也才學(xué)了一端時(shí)間的can總線,有此愛好的朋友可以加我msn:tianlei_126hotmail 或者 :1823547316MHZ晶振下波特率(Kbit/s)BTR0 BTR1 20 053H, 02FH 40 087H, 0FFH50 047H, 02FH 80 083H, 0FFH100 043H, 02fH125 03H, 01cH200 081H, 0faH250 01H, 01cH400 080H, 0faH 500 00H, 01cH 666 080H, 0b6H800 00H, 016H1000 00H, 014

37、H答:16mhz下多個(gè)資料BTR0,BTR1的值不同,事實(shí)上都是對(duì)的 ,這兩個(gè)值只要遵從比例就好了,詳細(xì)了解一下位定時(shí)的計(jì)算就清楚了。問:我現(xiàn)在正在用sja1000做CAN接口的硬件部分,請(qǐng)問書上CAN_H和CAN_L部分間的兩個(gè)二極管起什么作用?。渴遣皇潜仨毥影?,應(yīng)該選什么型號(hào)的呢?(比如說什么功率的)查了好久都沒看到這部分的說明,請(qǐng)大家一定告訴我啊,著急要畫圖??!先行過了!答:這兩個(gè)二極管叫做瞬態(tài)抑制二極管,主要是總線過壓保護(hù),具體可以查找瞬態(tài)抑制二極管資料。答:這兩個(gè)二極管可以不要,如果總線穩(wěn)定,沒什么影響,就是一種保護(hù)。個(gè)人看法,僅供參考,多多指教!問:在CAN卡中,把IDH和IDL放在同一個(gè)ID中,請(qǐng)問發(fā)送的時(shí)候是不是把ID右移5位來分成IDH,IDL?答:在你過去的問題中從中抽取一些有用的信息“公司中規(guī)定IDL中低五位是固定的01000”可以確定:1.使用的是數(shù)據(jù)幀,不用遠(yuǎn)程幀;2.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論