




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 . . . CAN總線學(xué)習(xí)心得 摘抄.txt54就讓昨日成流水,就讓往事隨風(fēng)飛,今日的杯中別再盛著昨日的殘痕;唯有珍惜現(xià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)。問:請問單個(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的寄存器嗎?答:首先把讀寫片選信號產(chǎn)生了再去管sja1000吧。問:我用驗(yàn)收濾波器來選擇接收CAN2.0B的一幀數(shù)據(jù),29位中只對其中幾位進(jìn)行判別,其他位又不是定值,請問這該怎么辦?可不可以掩住不關(guān)心的位?用圍應(yīng)該也可以實(shí)現(xiàn),不過那樣感覺不好,請教大家,!答:相關(guān)/不相關(guān)位最終都可以轉(zhuǎn)化為圍描述。問:請教關(guān)于2119 can驗(yàn)收過濾器的問題請問:1、在canstarterii應(yīng)用指南第42頁中提到的“fullcan標(biāo)準(zhǔn)地址”與“標(biāo)準(zhǔn)單個(gè)地址”
3、有何區(qū)別? 2、第45頁表2.34的“值”“字”“行”“id索引”是什么概念?答:fullcan標(biāo)準(zhǔn)地址放置的是需要自動執(zhí)行接收存儲的id索引表格(fullCAN功能,查看相關(guān)的介紹);標(biāo)準(zhǔn)單個(gè)地址僅僅是AF接收/屏蔽標(biāo)準(zhǔn)id的索引表格,即和一般的接收過濾理解一致。答:fullcan模式下自動把符合的幀放在后面的ram里 標(biāo)準(zhǔn)單個(gè)把符合的數(shù)據(jù)放在接收寄存器中問:將“LPC 系列ARM 微控制器的CAN 接收過濾設(shè)置” 一文中的LTU.hpp加入原來的工程中(原來是用c做的),編譯時(shí)有好多錯(cuò)誤,用的確實(shí)是C編譯器,可感覺它對c中的關(guān)鍵詞不認(rèn)識,請大家指教,!答: 里頭好像僅僅作用域符號“:”不是
4、C的之外沒什么特別之處。問:以前我用的是485通訊,通訊協(xié)議里面都定義了包起始和包結(jié)束(CRC可以幫助驗(yàn)證是否包結(jié)束)。而對于CAN這個(gè)東東,比如我要發(fā)送一個(gè)信息包有100個(gè)字節(jié),發(fā)送倒沒有問題,對于接收端,我怎樣去判斷包起始和包結(jié)束呢?困惑ing請斑竹和各位大蝦們指教!答:CAN-bus由硬件完成幀的錯(cuò)誤控制、數(shù)據(jù)處理,因此,協(xié)議比RS-485會方便許多。比如擴(kuò)展幀格式:幀頭(源地址、目的地址、命令字、輔參數(shù)) 數(shù)據(jù)場(分段碼、07個(gè)數(shù)據(jù)) 超過8個(gè)字節(jié)/幀時(shí),需要分幀處理。 具體方式,可以參考網(wǎng)頁的CAN應(yīng)用方案訊協(xié)議篇、RS-485升級篇。問:我的應(yīng)用為:一個(gè)主機(jī)(計(jì)算機(jī))會和很多的從機(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)串口模塊使用說明 問:對sja1000進(jìn)行硬件復(fù)位時(shí),要求sja1000的片選同時(shí)有效嗎?比如用138譯碼器的y1選通sja1000的復(fù)位線,來達(dá)到使sja1000復(fù)位的目的,那么此時(shí)要求片選線有效嗎?答:見SJA1000數(shù)據(jù),異步操作,不要求片選有效。問:請問怎樣把sja1000分時(shí)復(fù)用AD總線與pc104的數(shù)據(jù)線和地址線連接? 答:周立功公司已經(jīng)有現(xiàn)成的“PC104-CA
6、N”接口卡提供。問:DP51+上BasicCAN測試程序的問題 在DP51+上用BasicCAN測試程序按鍵操作向其它節(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)過測試,附有文檔說明。問:在開發(fā)過程中遇到如下問題:(公司沒有上ARM,出于對其狂熱的追求,自己出銀子買的DEMO板)1:想完成自發(fā)自收,CANMOD_STMBIT=1,CANCMR_SRRBIT=1,觀察寄存器窗口,接收REG
7、 容沒有發(fā)生變化,(自測模式是否需要搭建一個(gè)CAN總線平臺?我只有一個(gè)DEMO和 一個(gè)自己做的CAN總線收發(fā)器),接收中斷也未發(fā)生,用的是周工最新的驅(qū)動.2. 如果只想接收ID為0x1234的信息,不用FULLCAN模式,該怎樣設(shè)置才對呢?是不是這樣: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).郁悶啊還請斑竹和大蝦們指點(diǎn)迷津答:CAN總線至少需要2個(gè)節(jié)點(diǎn)才好調(diào)試,要不怎樣才能組成總線呢? 答
8、:可以下載代碼,請參照配套的文檔進(jìn)行測試。至少要加CAN收發(fā)器、終端電阻,建立再在PC上安裝1個(gè)CAN接口卡,比如CAN232接口卡?;貜?fù):原來采用的總線收發(fā)器的前端光耦出了問題!大家了!特別感周立功的技術(shù)支持工程師!問:如果要在CANBUS上供電12V或27V,該怎么做?因?yàn)镃AN是平衡傳輸,要用差分信號來同步,現(xiàn)在要提高電平,該怎么做,以前請教過,但都只是說設(shè)計(jì)接口電路就可以實(shí)現(xiàn),但是太模糊了,能否有過經(jīng)驗(yàn)者提供一點(diǎn)有實(shí)際操作的思路。感激不盡。感你的關(guān)注!答:1,加一組電源線;2,收發(fā)器就是差分驅(qū)動器。問:如果加電源線那還是總線供電嗎?我的意思是兩條線上既傳信號又傳電,請教可以做到嗎?答:
9、在CAN應(yīng)用中的總線供電常指的是通過4芯或5芯通信線纜供電;收發(fā)器出來的仍然是基帶信號沒有調(diào)制的所以不容易實(shí)現(xiàn)線纜復(fù)用。問:請各位高手解決:SJA1000收發(fā)擴(kuò)展幀正常,但是不接收標(biāo)準(zhǔn)幀答:我認(rèn)為SJA1000不會出現(xiàn)這種現(xiàn)象,除非發(fā)送方有錯(cuò)誤.問:對FullCAN模式不是很理解,哪位老師給詳細(xì)介紹一下,! 答:簡而言之,就是驗(yàn)收濾波方式的增強(qiáng),BasicCAN只有一種濾波,PeliCAN有2種濾波,可以加上廣播信息,而FullCAN就是有更多種濾波。問:急,請各位老師近來看看2119 CAN驗(yàn)收濾波器問題 設(shè)置如下:我用的是匯編:AF_MEM EQU 0xE0038000LDR R0,=AF
10、_MEM ;讀取驗(yàn)收濾波器RAM的起始地址LDR R1,#0x25522553 ;我需要標(biāo)識為552和553的接收,CAN1控制器STR R1,R0LDR R0,=AFMR ;讀取驗(yàn)收濾波器模式寄存器地址MOV R1,#0x00 ;這樣啟動濾波器對嗎?STR R1,R0這樣的情況下,CAN1接收中斷不響應(yīng)任何數(shù)據(jù),這是為什么?中斷機(jī)制完好,旁路濾波器時(shí)候全部響應(yīng)的.關(guān)于CANSFF_sa寄存器該如何設(shè)置才能完成濾波接收?請指教。答:修改RAM表格前應(yīng)該先置位AccBP位LDR R0,=AFMR ;讀取驗(yàn)收濾波器模式寄存器地址MOV R1,#0x02 ;置位AccBP,以便設(shè)置過濾表格 STR
11、R1,R0答:參考<LPC系列ARM微控制器的CAN接收過濾設(shè)置> 問:在使用周的底層驅(qū)動時(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;答:資料已更新;查詢方式會比較方便。問:過載幀與錯(cuò)誤幀是怎么使用的啊對數(shù)據(jù)幀,和遠(yuǎn)程幀很好理解,也很好使用,但是對過載和錯(cuò)誤就不知道在什么地方用了,也不知道該怎么用了
12、啊?請各位指點(diǎn)答:CAN控制器自己管理問:錯(cuò)誤消極中斷和錯(cuò)誤警報(bào)中斷該怎么處理呢?只是簡單的復(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)榻邮罩袛嗪鸵绯鲋袛嗟念~中斷號是不同的,菲利普的
13、早期資料中CAN的中斷號有錯(cuò),請下載最新資料!答:我試過中斷模式,沒問題,可以產(chǎn)生中斷,可是周的低層驅(qū)動關(guān)于環(huán)形緩沖區(qū)那部分可能有些問題。中斷后調(diào)用寫數(shù)據(jù)緩沖區(qū),然后在主程序里循環(huán)讀環(huán)形緩沖區(qū)。忘了是在哪里會出現(xiàn)數(shù)據(jù)中止,按說是不應(yīng)該出現(xiàn)的。問:請教RTR位在濾波中的作用?請教各位老師:濾波器中的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í)間不必要考慮此位。郁悶的不行,懇請幫助!答:就把它看作像id那樣的一個(gè)bit看待吧。問:SJ1000T中基本模式下只能檢測8位的ID,但發(fā)送時(shí)確有11位ID,請問ID2-0有什么用?答:你指的是BasicCAN模式下的"驗(yàn)收過濾";其實(shí),兩種模式的所有11位或29位都有效。問:BasicCAN模式下的"驗(yàn)收過濾"只能過濾ID103,請問ID20對接受有影響嗎?資料顯示并沒有對ID20進(jìn)行核對。答:BasicCAN模式?jīng)]有對ID20進(jìn)行核對。問:請問在雙絞線上傳輸?shù)腃AN信號波
15、形應(yīng)該是怎么樣的?信號的幅值和頻率?另外,能否推薦使用在車輛上的電纜型號以與節(jié)點(diǎn)與總線相接的接插件型號!答:汽車類型不同,應(yīng)用有所不同,建議參考SAE J1939協(xié)議容中的規(guī)定,制定自己的規(guī)。問:有沒有CAN控制器+單片機(jī)(不包括CAN驅(qū)動器),成本不超過15元的方案?可付報(bào)酬!答:目前我們沒有能力實(shí)現(xiàn)。答:io模擬低速can。問:請問CAN總線是不是不能提供總線供電?如果希望總線供電該如何做?誰能提供一點(diǎn)關(guān)于CAN能總線供電的資料???答:CAN 或 DeviceNet 都可以總線供電,根據(jù)需要選擇適合的應(yīng)用。CAN 沒有規(guī)定物理層.是一種相當(dāng)靈活的現(xiàn)場總線。DeviceNet、CANopen
16、均是基于CAN-bus協(xié)議,自定協(xié)議也不難。問:請問遠(yuǎn)程幀的作用是什么?在什么情況下需要使用它?答:那是一種可用可不用的幀資源.問:基地址選了0xda00,偏移量選擇0000后,sja1000得寄存器的地址是從0xda000開始嗎?答:對的。問:在每次只收到一幀的情況下,我置位清除接受緩存都沒問題,但是一旦在短時(shí)間接收到2幀或以上時(shí)(短時(shí)間指,第一幀還未完全被微控制器接收而第二幀已經(jīng)到來)我收完一幀,置位清緩就會出錯(cuò)。然后我復(fù)位繼續(xù)接收下一幀微控制器就不能從sja1000接收了,為什么會這樣那?置位清緩不是只清掉第一幀數(shù)據(jù)么?如果只清第一幀數(shù)據(jù)的話,應(yīng)該第二幀可以收到的???這是怎么回事那?要怎
17、么解決那?了。答:不會這樣的,查查其他原因。 問:請教版主CAN總線用于爆炸性氣體環(huán)境可以嗎? 在網(wǎng)上搜索了一下,看到的 是幾年前發(fā)表的 文章說CAN總線沒有解決防爆問題,不知現(xiàn)在有沒解決在爆炸性氣體環(huán)境使用CAN總線通信。如果沒有那只好用以前的 485了 改成hart還是更麻煩答:在現(xiàn)場總線控制系統(tǒng)的調(diào)試與開發(fā)-國防工業(yè)的技術(shù)書籍第8頁,列出了CAN-bus是本安的總線之一。問:請問Can232和can232B轉(zhuǎn)換器的通訊協(xié)議是否必須和計(jì)算機(jī)相連才能更改我想用轉(zhuǎn)換器直接與PLC相連不知如何設(shè)置通訊協(xié)議。答:看應(yīng)用場合而定,可以不用設(shè)置協(xié)議。這一份文檔中有很好的說明!問:關(guān)于節(jié)點(diǎn)發(fā)送的問題向你
18、請教。 發(fā)現(xiàn)經(jīng)常我的硬件復(fù)位有時(shí)不是成功的,導(dǎo)致發(fā)送不成功。讀狀態(tài)寄存器SR0x04,或0x44;請問這種情況是怎么回事?答:“硬件復(fù)位有時(shí)不是成功的”不容易理解;建議看一下前面的貼,或的參考程序。問:那請問:硬件復(fù)位后,我發(fā)送前讀狀態(tài)寄存器SR0x04,也就是“當(dāng)前請求的發(fā)送未處理完”,這種情況下發(fā)送時(shí)不能成功的。有時(shí)候硬件復(fù)位后發(fā)送前讀狀態(tài)寄存器SR0x0c,這種情況下發(fā)送時(shí)可以的。請教:為什么硬件復(fù)位后還會出現(xiàn)像前面的那種狀態(tài)寄存器SR0x04,也就是“當(dāng)前請求的發(fā)送未處理完”的情況,應(yīng)該如何處理?答:硬件復(fù)位成功后 SR= 0X0C ;否則就是硬件方面存在問題。建議用公開的電路與程序,
19、或者直接在DP系列實(shí)驗(yàn)儀上測試。問題1:在通訊時(shí)出現(xiàn)錯(cuò)誤,用軟件復(fù)位能否將錯(cuò)誤清除?問題2:軟件復(fù)位是否將以前設(shè)置的參數(shù)改為默認(rèn)值?是否需要重新初始化?答:1.可以;2否,是 問:為什么我在復(fù)位模式下CDR寄存器寫不進(jìn)那?其他寄存器都可以寫進(jìn)去,就是CDR寫不進(jìn)去。不明白為什么,和其他寄存器一樣的寫法,語句,但是無論寫什么進(jìn)去,讀出來都是00H??梢詭兔獯鹨韵旅矗苛俗ⅲ簾o論讀寫都是在復(fù)位模式下答:芯片SJA1000的硬件復(fù)位會使CDR=0x00。求助,為何我寫不了CAN地址大于8的寄存器?SJA1000的基地址是BF00H,我對SJA1000的寄存器在復(fù)位模式下進(jìn)行寫,寫完讀出(當(dāng)然是對于可
20、讀寫的)發(fā)現(xiàn)對于CAN地址大于8的寫入一定的數(shù)之后再讀出,讀出的數(shù)大部分是FF,而不是我寫如的數(shù),哪位大俠可以提供幫助?。在PELICAN模式下。答:你在basic模式下試一下。答:也可能是硬件接線問題。問:SAE J1939的中文資料在哪里找?答:一般不會有中文資料,看應(yī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的話周期太長,可自己焊又不能保證電路板的穩(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/端的電平就被拉低不會變高,我在isr中設(shè)置了點(diǎn)燈測試,當(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ì)請看相關(guān)的用戶手冊。16MHz,在編程接口文檔中應(yīng)該也有說明。問:關(guān)于SJA1000的錯(cuò)誤處理! 在SJA1000的資料上可以看到,它有一個(gè)錯(cuò)誤代碼捕捉寄存器(ECC),通過查詢這個(gè)寄存器我們可以知道總線錯(cuò)誤的類型和位置信息。但在實(shí)際的應(yīng)用中,我們好像對這方面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)會一直發(fā)送(在示波器的波形可以看出),我現(xiàn)在問題是,這一點(diǎn)在重新軟件復(fù)位后,就不能發(fā)送了,讀狀態(tài)寄存器 ,顯示最后一次發(fā)送未被處理成功,假如關(guān)閉電源硬件復(fù)位重新開始又可以發(fā)送了。請教大家可以取消CAN節(jié)點(diǎn)的發(fā)送命令嗎?用軟件怎樣實(shí)現(xiàn)?答: 請問你所指的軟件復(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ù),我查了硬件電路,沒有問題,我郁悶死了,請問大家該從哪方面下手去找原因啊,我用的電路是CANSTART-I用戶指南里面的那個(gè)程序,不知道有沒有問題。請有經(jīng)驗(yàn)的人幫幫忙啊,我的時(shí)間太緊了。答:先測試你的硬件 物理連接是否通過,可以先給SJA1000寫一個(gè)值如0xAA,再訪問SJA1000讀出來
25、看是否是0小AA?答:"不能正常收發(fā)數(shù)據(jù),我查了硬件電路,沒有問題.",這不自相矛盾了嗎?1,把所sja1000當(dāng)作xdata ram測試看看是否總線連接正常,sja受控?2,發(fā)送時(shí)看看總線是否出現(xiàn)差分信號?物理連接是否正常?這就基本把硬件問題定位了。問:請幫忙看一下程序,! SJA1000中地址16 寫入0x88地址17 寫入0x04地址18 寫入0x03地址19 寫入0x02地址19 寫入0x01使用ZLGCANTEST軟件得到的ID應(yīng)該是多少?怎樣計(jì)算?我得出的是0x00806020,好象是右移了五位?是否正確?。看穑汗ぷ髟赑eliCAN模塊的話,參照產(chǎn)品手冊附錄2可
26、以獲得在總線上的ID值。問:輸出控制寄存器的OCMODE1和OCMODE0可以設(shè)置為四種方式,雙相、測試、正常和時(shí)鐘輸出,一般應(yīng)該選擇哪一種輸出比較好,通訊可靠性高。答:常用pushpull模式,這比較通用,適應(yīng)性較好。問:在用ZLGCANTest1.4版在調(diào)試程序時(shí),下位機(jī)發(fā)送標(biāo)準(zhǔn)數(shù)據(jù)幀,USBCAN-II智能卡收此信息下位機(jī)的號為:x00000035,如果將ZLGCANTest的打開設(shè)備對話框中的驗(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è)置,而不是簡單地對應(yīng)關(guān)系。請參考提供的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卡是否會對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)不能再精簡了,請大家?guī)兔υ\斷一下,!答;采用中斷接收并壓入緩沖區(qū),主程序查詢發(fā)送OK,堵塞絕對不是芯片性能引起的,除非另一方設(shè)備接收存在問題。 問:關(guān)于SJA1000的讀寫時(shí)序 我看sja1000的數(shù)據(jù)手冊上是:先是ALE鎖存信號有效對地址進(jìn)行鎖存,然后才是/CS片選信號有效(此時(shí)讀寫信號,數(shù)據(jù)也有效),我得疑問是/CS信號在整個(gè)CAN通信期間不是一直有效嗎
32、?在地址鎖存時(shí)必須是無效的嗎?在CAN使用期間我如果讓/CS一直為低可以嗎?請知道的大俠不吝指教??!答:若不需要考慮其他地址沖突和功耗因素的可以這樣。 問:請教:CAN總線收發(fā)器PCA82C250的斜率電阻Rs的選擇問題。 是用47k的嗎?還是4.7k啊?哪位仁兄告訴一下,!答:如果你沒有什么特殊的要求,直接接地就行了答:47k的。問:各位大俠,我想用雙濾波進(jìn)行通訊,我想請教一下,另一個(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)識1,標(biāo)識2分別是00,0,為什么也能夠通訊呢,按照
33、濾波器工作原理來說,只要一個(gè)濾波器通過驗(yàn)收就能通訊,可是上面00,0并沒有通過濾波器呀!我糊涂了,請教各位大俠,非常的感!答:友情提醒朋友,資料很多在上已發(fā)表,查找一下即可。見CAN控制器SJA1000驗(yàn)收濾波器原理與應(yīng)用。 問:標(biāo)識符確定? 假設(shè)網(wǎng)絡(luò)中有A、B兩個(gè)節(jié)點(diǎn)。A請求B發(fā)送數(shù)據(jù),則A發(fā)送遠(yuǎn)程幀(B標(biāo)識符+RTR)。B點(diǎn)接收到該幀后,如何判斷這是誰發(fā)來的請求幀?若是A點(diǎn),則B點(diǎn)發(fā)送數(shù)據(jù)幀(A標(biāo)識符+RTR+數(shù)據(jù)長度+數(shù)據(jù))。關(guān)鍵的問題是,在多個(gè)節(jié)點(diǎn)組成的系統(tǒng)中,各節(jié)點(diǎn)之間如何管理?相互之間如何識別和握手?答:應(yīng)用層協(xié)議的建立,請參考CAN-bus 現(xiàn)場總線基礎(chǔ)方案-通訊篇。答:每個(gè)結(jié)點(diǎn)
34、都是對等的,你只需要規(guī)劃好發(fā)送結(jié)點(diǎn)的ID 與接收結(jié)點(diǎn)的acr,amr的對應(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,自測試通過),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)由硬件自動完成吧?那時(shí)因?yàn)槭裁茨兀浚úㄌ芈?00kbps,BTR0=41H,BTR1=B9H)答:應(yīng)答有硬件自動完成。問:我現(xiàn)在沒有CAN的接收器,就簡單的把CAN的兩個(gè)輸入、輸出連起來,發(fā)現(xiàn)輸出有信號,輸入沒信號,不知這樣可不可以?有沒有更好的辦法來檢驗(yàn)我設(shè)計(jì)的電路?答:將CAN控制器的TDx與RDx連接可以進(jìn)行測試,具體參考相關(guān)的CAN控制器手冊。本人不提倡這種方法,因?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í)上都是對的 ,這兩個(gè)值只要遵從比例就好了,詳細(xì)了解一下位定時(shí)的計(jì)算就清楚了。問:我現(xiàn)在正在用sja1000做CAN接口的硬件部分,請問書上CAN_H和CAN_L部分間的兩個(gè)二極管起什么作用?。渴遣皇潜仨毥影?,應(yīng)該選什么型號的呢?(比如說什么功率的)查了好久都沒看到這部分的說明,請大家一定告訴我啊,著急要畫圖啊!先行過了!答:這兩個(gè)二極管叫做瞬態(tài)抑制二極管,主要是總線過壓保護(hù),具體可以查找瞬態(tài)抑制二極管資料。答:這兩個(gè)二極管可以不要,如果總線穩(wěn)定,沒什么影響,就是一種保護(hù)。個(gè)人看法,僅供參考,多多指教!問:在CAN卡中,把IDH和IDL放在同一個(gè)ID中,請問發(fā)送的時(shí)候是不是把ID右移5位來分成IDH,IDL?答:在你過去的問題中從中抽取一些有用的信息“公司中規(guī)定IDL中低五位是固定的01000”可以確定:1.使用的是數(shù)據(jù)幀,不用遠(yuǎn)程幀;2.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 拍攝 演員合同范本
- 讀后續(xù)寫+新校+“迷”+途:友誼的正確打開方式+講義 高一下學(xué)期2月收心考試英語試題
- 逾期罰款合同范本
- 相機(jī)銷售合同范本
- 全國旅游合同范本
- 2025-2030年中國生物蠟行業(yè)運(yùn)行狀況與發(fā)展風(fēng)險(xiǎn)分析報(bào)告
- 2025-2030年中國照明電器行業(yè)十三五規(guī)劃與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國煤代油行業(yè)運(yùn)行態(tài)勢及發(fā)展趨勢分析報(bào)告
- 2025-2030年中國燒結(jié)型焊劑行業(yè)運(yùn)行狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國流感疫苗市場運(yùn)營現(xiàn)狀及發(fā)展趨勢分析報(bào)告
- 人教版高中政治必修3政治與法治《第一課歷史和人民的選擇》教案及教學(xué)反思
- 【基于哈佛分析框架的上市公司財(cái)務(wù)研究-以中百集團(tuán)為例】
- 中職生心理特征和常見心理問題
- 美術(shù)第二課堂活動方案2篇
- (名師整理)部編人教版語文初中課內(nèi)古詩文大全(五四制)
- 非常好的精益生產(chǎn)案例-值得借鑒
- 東南亞潤滑油市場研究報(bào)告和展望
- 煤礦安全知識300問 煤礦職工每日一題
- 《0-3歲嬰幼兒教育》課程教學(xué)大綱
- 2023年廣東醫(yī)科大學(xué)專插本中藥學(xué)真題
- GB/T 5392-2004林業(yè)機(jī)械油鋸技術(shù)條件
評論
0/150
提交評論