PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp USB, CAN, I2C, SPI, USART... (http://www.picvietnam.com/forum/forumdisplay.php?f=45)
-   -   Giao tiếp CAN (http://www.picvietnam.com/forum/showthread.php?t=814)

tda 20-12-2006 06:14 PM

Giao tiếp CAN
 
1 Attachment(s)
Vừa mới làm bài báo cáo về CAN. post lên đây cho mọi người đọc.

Phần CAN trong PIC hơi sơ sài, các bạn đọc thêm trong datasheet. Trong báo cáo ko đủ.

Hi vọng các bạn đọc và bổ sung để làm tài liệu về CAN phong phú thêm.

CAN(MCU) v.s LAN(CPU) ??? :D

falleaf 20-12-2006 08:15 PM

Bài báo cáo của bạn rất hay, cho hỏi bạn có thể cho F xin bản .doc, để F chuyển lại thành dạng báo cáo chuẩn của picvietnam và đưa vào kho lưu trữ của picvietnam được không?

Việc copy lại và chuyển dạng không khó, nhưng nó không chính thức, mình thấy bài báo cáo này bạn làm rất là chi tiết, nên muốn chuyển thành tài liệu của picvietnam. Nếu được xin bạn gửi email cho mình tài liệu .doc.

Ngoài ra, theo nguyên tắc phổ biến của picvietnam, tất cả các tài liệu của picvietnam sẽ được phổ biến ở dạng .pdf, chứ không đưa tài liệu .doc lên mạng, để hạn chế việc cóp pết mà không đọc gì. Còn có đọc, có cóp thì có tốt.

Nếu đưa vào picvietnam, thì nó sẽ chính thức là tài liệu được công nhận của picvietnam.

Chúc vui.

tda 21-12-2006 08:53 AM

Em sẽ gửi cho anh bản .doc để chuyển thể qua form của picvietnam.

Các bạn đổi dòng code sau đây trong file EX_CAN.c :

int1 tx_rtr=0; //nut gui message dữ liệu;
int1 tx_ext=1; // Dung ID mo rong

và nạp vào 2 con PIC có hỗ trợ CAN sẽ thấy nó truyền nhận cho nhau. Từ đó có thể lập trình cho các ứng dụng khác. Cái này thì tùy các bạn.

Chúc các bạn thành công và tham gia phát triển (tài liệu & ứng dụng) mạng CAN vì đây là một mạng mạnh : đường truyền vi sai kháng nhiễu (giống USB), message được định địa chỉ ID chứ không phải các nút, ai muốn truyền thì truyền, nhận hay không là tùy mình (ko có master, slave giống I2C), nên rất dễ trao đổi dữ liệu...

falleaf 21-12-2006 09:23 AM

Đã nhận được tài liệu em gửi, anh sẽ chuyển dạng lại thành báo cáo chuẩn của picvietnam và gửi lên chính luồng này.

Chúc vui

falleaf 21-12-2006 10:51 AM

1 Attachment(s)
Thành thực khuyên các bạn cố gắng viết các tài liệu sử dụng form chuẩn của picvietnam.

1) Có rất nhiều điều thuận lợi khi sử dụng form này
2) Bản thân khi các bạn viết báo cáo, hoặc viết bất kỳ tài liệu gì, việc đánh dấu, hệ thống, tổng hợp, in ấn,... đều rất thuận lợi.

Sáng nay lên sửa cái báo cáo của TDA, sửa mất 2 tiếng đồng hồ luôn, và kết quả của nó ở đây :D

Hãy download và sử dụng, nó hoàn toàn có lợi.

Chúc vui

The lastest 02-05-2007 07:37 PM

AI biet chi dum
 
Mình đang tham gia tìm hiểu giao tiếp mạng CAN thế nhưng đang gặp vấn đề về linh kiện.
Mình không tìm ở đâu ra được con MCP 2551 và MCP 2515 cả.
Các bạn có biết ở đâu có con này không chỉ giúp mình với
Thank!

Trích:

F: Bạn có thể liên hệ bạn Thủy: polaris2511bk@yahoo.co.kr để mua. Lưu ý là bạn không hỏi mua linh kiện ở những luồng nói về kỹ thuật thế này

arale 02-07-2007 05:14 PM

bài báo rất hay và chi tiết. Cảm ơn tác giả TDA rất nhiều.

roriron 29-02-2008 10:31 PM

Cho em hỏi các con pic nào hỗ trợ giao tiếp CAN, có trong thư viện của Proteus không ? Khi kết nối PIC với bus CAN thì kết nối trực tiếp hay qua con đệm nào khác?

trenga 14-03-2008 04:04 PM

Pic18fxx8 Và Can
 
Mình thấy tài liệu về CAN cũng khá nhiều nhưng chưa tìm được file nào giới thiệu cụ thể về sơ đồ mạch dùng pic 18fXX8 để thực hiện truyền thông CAN, và code cho một ví dụ cụ thể dùng pic 18fxx8 cho truyền thông CAN.
Các bạn ai đã làm hay có tài liệu mong chia sẻ cho mình và mọi người cùng xem với.

XuanXuan 15-03-2008 10:27 PM

Đọc datasheet của PIC đi, có hết rồi, cả sơ đồ nguyên lý nữa.

trenga 16-03-2008 09:33 AM

Mình muốn có thêm code viết bằng C nhiều nhiều để tham khảo thêm, vì datasheet mình có chỉ viết bằng hợp ngữ thôi.Trong ví dụ của CCS cũng có ví dụ về CAN rồi. Nếu bạn có thêm ví dụ nào nữa gởi cho mình và mọi người với nhen. Cảm ơn nhiều.

XuanXuan 16-03-2008 12:16 PM

1 Attachment(s)
Ngày trước mình dùng mạch này test thử mạng CAN, viết bằng CCS!
Bạn thử làm rồi truyền giữa 2 mạch xem. Code CCS mình ko giữ nữa vì toàn để ở My Documents, cài lại win xóa hết rồi :(

XuanXuan 16-03-2008 12:22 PM

Chú ý là trong thư viện của CCS có sai mấy thanh ghi :D
Ko biết bây giờ họ đã sửa chưa, ngày trước mình phải ngồi sửa thư viện nó mới chạy được!

scentoflove 09-04-2008 09:43 PM

Hiện giờ mình đang làm 1 đề tài như vầy PC - 232 - Master - CAN - >10 Nodes.
Master cũng là 1 node nhưng có nhiệm vụ nối với PC qua 232 để nhận lệnh và truyền lại trên mạng CAN.
Node sử dụng dsPIC30f4012.
Mạng CAN sử dụng extended Identifier (2 9bits) với 8bit MSB là địa chỉ node và 8 bit sau là lệnh (0x01xx - 0x02xx - ... - 0x0Axx với xx là lệnh)
Ví du:
PC cần gửi 1 lệnh 0x20 xuống node 5 => Extended identifier mà Master sẽ truyền là 0x0520
Vấn đề của mình hiện giờ là có 10 nodes và khỏan 5 lệnh từ PC truyền xuống làm sao để chỉ node cần nhận lệnh nhận và xữ lý, các node còn lại sẽ bỏ qua ko xữ lý. Module CAN trên 4012 có 2 bộ đệm nhận RB0 (2 Filter), RB4 (4 Filter). Mình biết đc cách mask và filter làm việc để đọc 1 gói tin trên CAN nhưng làm thế nào để biết dc Filter nào sẽ nhận gói tin. Hay là set mask 0 và 1 giống nhau, filter 0 - 5 giống nhau và phù hợp với identifier mà node cần nhận.

KA52 23-05-2008 09:23 PM

em đã làm theo mấy cái ví dụ trong CCS nhưng sao ko thấy tín hiệu mạng zì hết. Làm sao biết là đã truyền thành công, ví dụ ở master có gửi nhưng slave lại bị lổi ko hiểu. ai có cách giúp em với

scentoflove 23-05-2008 10:50 PM

Module CAN trên PIC có mode Loopback, mode này cho phép gửi và nhận CAN message ngay trong PIC ko cần ngoại vi bên ngoài.
Bạn có thể lập trình hoàn chỉnh và chọn mode loopback sau đó dùng 1 ngoại vi khác đã kiểm tra ví dụ khi nhấn 1 button nào đó PIC send 1 message với nội dung bạn biết trước, sau đó kiểm tra nếu buffer nhận của CAN nhận đúng message với nội dung đó thi sáng 1 led (hoặc cũng có thể dùng UART để xem lại dữ liệu nhận từ CAN). Lưu ý cần chỉnh CAN chế độ accept all, MASK & FILTER = 0, sau khi test ok thì sau này có thể chỉnh lại MASK và FILTER cho phù hợp.
Nếu bạn chạy loopback ok thì có thể nạp trên 2 chip khác nhau để test, vấn đề còn lại là kết nối với CAN transformer.

ketxanh 11-08-2008 01:10 PM

tui cũng đang nghiên cứu giao tiêp can.ai có thông tin gi thêm share với anh em nhé

ngocduc3000 17-10-2008 06:01 PM

Em cũng đang làm nghiên cứu về vấn đề về CAN , Em đang học CNTT-Mạng MÁy tính.
Tính dự định làm đồ án tốt nghiệp về Lập trình mạng CAN.
Khó quá đi, bước phải bắt đầu làm gì đây.
Mong các anh chị giúp em với(Hồi nhỏ mê cái vụ này lắm!!:)Hiii)

thevinhbk3i 14-10-2009 07:08 PM

can tai lieu ve giao thuc can ( tieng viet)
 
to can tai lieu giao thuc can tieng viet qua _ ai co cho to di ! email la thevinhbk3i@gmail.com . thanks

minhtr123 15-11-2009 09:02 PM

SOS- Giúp Tìm Hieu CAN
 
Chào Bạn.
Mình cũng đang làm về CAN. nhung chua hiểu về Nó lắm. Có Ai biet chỉ giúp với.
Tình hình là thầy chỉ Em dung con MCP2551( vì chỉ có con này BÁn ở cỗ mình thôi). Nhưng dùng Con này thì phải dùng với 1 Con PIC nưa. Nhung mình ko hoc lap trình PIC, Vậy cho hoi Mình có thẻ dùng Ket Hop MCP2551 với AVR (ATmega32) dược ko???. HAy có coa mạch ứng dụng con MCP2552 thì cho mình với. Thanks nhều.

phamminhtuan 16-11-2009 10:43 AM

Trích:

Nguyên văn bởi minhtr123 (Post 31286)
Chào Bạn.
Mình cũng đang làm về CAN. nhung chua hiểu về Nó lắm. Có Ai biet chỉ giúp với.
Tình hình là thầy chỉ Em dung con MCP2551( vì chỉ có con này BÁn ở cỗ mình thôi). Nhưng dùng Con này thì phải dùng với 1 Con PIC nưa. Nhung mình ko hoc lap trình PIC, Vậy cho hoi Mình có thẻ dùng Ket Hop MCP2551 với AVR (ATmega32) dược ko???. HAy có coa mạch ứng dụng con MCP2552 thì cho mình với. Thanks nhều.

Bạn có thể dùng MCP2551 với bất kỳ MCU nào, MCP2551 là Stand Alone CAN Controller, chỉ cần có giao tiếp SPI giữa MCU và MCP2551 là có thể điều khiển nó tham gia vào mạng CAN, tuy nhiên bạn cần lưu ý, MCP2551 chỉ là CAN Controller, để có được mức điện áp cho tín hiệu trong CAN Bus, bạn cần gắn CAN Tranceiver (MCP2515) chuyển đổi mức điện áp CAN TX, CAN RX thành CAN H, CAN L

minhtr123 18-11-2009 06:23 PM

Trích:

Nguyên văn bởi phamminhtuan (Post 31306)
Bạn có thể dùng MCP2551 với bất kỳ MCU nào, MCP2551 là Stand Alone CAN Controller, chỉ cần có giao tiếp SPI giữa MCU và MCP2551 là có thể điều khiển nó tham gia vào mạng CAN, tuy nhiên bạn cần lưu ý, MCP2551 chỉ là CAN Controller, để có được mức điện áp cho tín hiệu trong CAN Bus, bạn cần gắn CAN Tranceiver (MCP2515) chuyển đổi mức điện áp CAN TX, CAN RX thành CAN H, CAN L

Thanks MOD rất nhiêu! Nhưng còn phải tìm hiêu và làm nhiều mới hoàn tất được.

minhtr123 30-11-2009 11:53 AM

Hoi ve CAN
 
Cac Pac!, Pa MOD oi!
Cho đệ tử hỏi, nếu không có con MCP2515, để lamàm nhiệm vụ kết nối MCP2551với MCU bất kì thì mình có thể chế ra, hay dùng con nào khác, hay còn cách nào khác để làm chức năng tương tự để thay thế MCP2515khoong ạ! Vì em kiếm mua con MCP2515 không có, em ở Sai Gòn.
Cảm ơn mấy Pác nhiều!

minhtr123 30-11-2009 12:09 PM

Hoi ve CAN
 
Cac Pac!, Pa MOD oi!
Cho đệ tử hỏi, nếu không có con MCP2515, để lamàm nhiệm vụ kết nối MCP2551với MCU bất kì thì mình có thể chế ra, hay dùng con nào khác, hay còn cách nào khác để làm chức năng tương tự để thay thế MCP2515khoong ạ! Vì em kiếm mua con MCP2515 không có, em ở Sai Gòn.
Cảm ơn mấy Pác nhiều!

tahi 01-12-2009 01:16 PM

AVR cũng có dòng hỗ trợ can bus, sao bạn không dùng luôn. Con MCP2551 là con CAN tranceiver chỉ đóng vai trò convert tín hiệu số từ bộ CAN controller tích hợp sẵn trong các vđk.....
vđk (có CAN controller) -> MCP2551 -> mạng CAN
vđk (có SPI) -> MCP2515 -> mạng CAN

minhtr123 01-12-2009 09:44 PM

Trích:

Nguyên văn bởi tahi (Post 31861)
AVR cũng có dòng hỗ trợ can bus, sao bạn không dùng luôn. Con MCP2551 là con CAN tranceiver chỉ đóng vai trò convert tín hiệu số từ bộ CAN controller tích hợp sẵn trong các vđk.....
vđk (có CAN controller) -> MCP2551 -> mạng CAN
vđk (có SPI) -> MCP2515 -> mạng CAN

Thì vấn đề là mình không mua được con MCP2515. nen ko the dung duoc cac con MCU co SPI.

Còn AVR có tích hợp can như: AT90CAN128/32/64 thì không có bán ở VN. huhu. Vấn dề là thế.

khacbang 03-04-2010 06:23 PM

có bác nào biết vdk AVR nào có tích hợp CAN ko? chỉ dùm em với?

khacbang 03-04-2010 06:27 PM

lập trình CAN
 
Trích:

Nguyên văn bởi scentoflove (Post 16466)
Module CAN trên PIC có mode Loopback, mode này cho phép gửi và nhận CAN message ngay trong PIC ko cần ngoại vi bên ngoài.
Bạn có thể lập trình hoàn chỉnh và chọn mode loopback sau đó dùng 1 ngoại vi khác đã kiểm tra ví dụ khi nhấn 1 button nào đó PIC send 1 message với nội dung bạn biết trước, sau đó kiểm tra nếu buffer nhận của CAN nhận đúng message với nội dung đó thi sáng 1 led (hoặc cũng có thể dùng UART để xem lại dữ liệu nhận từ CAN). Lưu ý cần chỉnh CAN chế độ accept all, MASK & FILTER = 0, sau khi test ok thì sau này có thể chỉnh lại MASK và FILTER cho phù hợp.
Nếu bạn chạy loopback ok thì có thể nạp trên 2 chip khác nhau để test, vấn đề còn lại là kết nối với CAN transformer.

bác scentoflove ơi.có thể trình bầy một ví dụ nhỏ lập trình truyền nhận giữa các node trong mạng CAN ko? mong bác chỉ dẫn giúp cho em và mọi người. nghe bác nói em thấy hiểu nhiều nhưng chưa làm thực tế nên thấy khó quá

hopeman 04-04-2010 01:05 AM

http://www.microchip.com/stellent/id...GE&nodeId=1408
microchip đã cung cấp rất nhiều code mẫu cho nó và thậm chí chính xác cái bạn đang cần luôn. từ sau bạn chịu khó dùng google cái là ok liền :d

hopeman 04-04-2010 01:05 AM

http://www.microchip.com/stellent/id...GE&nodeId=1408
microchip đã cung cấp rất nhiều code mẫu cho nó và thậm chí chính xác cái bạn đang cần luôn. từ sau bạn chịu khó dùng google cái là ok liền :d

ThaoBinh90 17-05-2010 06:10 PM

Trong tài liệu của bạn Tạ Đức Anh có đoạn :
"Mạng CAN thuộc loại message base syst em, khác với address base system, mỗi loại message được gán một ID. Nhữ ng hệ thống address base thì mỗi nod e được gán cho một ID. Message base system có tính mở hơn vì khi thêm, bớt một node hay thay một nhóm node bằng một node phức tạp hơn không làm ảnh hưởng đến cả hệ thống. Có thể có vài node nhận message và cùn g thực hiện một task. Hệ thống đ iều khiển phân bố dựa trên mạng CAN có tính mở, dễ dàng thay đổi mà không cần phải thiết kế lại toàn bộ hệ thống."
Mình thấy khi tạo ra 1 node CAN thì cũng cần tạo ID cho node đó, ID trong message là ID của node có phải không? Mong nhận được chỉ giáo của anh em.


Múi giờ GMT. Hiện tại là 09:37 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam