Menu English Ukrainian Tiếng Nga Trang Chủ

Thư viện kỹ thuật miễn phí cho những người có sở thích và chuyên gia Thư viện kỹ thuật miễn phí


ENCYCLOPEDIA VỀ ĐIỆN TỬ TRUYỀN THANH VÀ KỸ THUẬT ĐIỆN
Thư viện miễn phí / Sơ đồ của các thiết bị vô tuyến-điện tử và điện

Tính toán đồng bộ bit của mạng CAN. Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện

Thư viện kỹ thuật miễn phí

Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện / Ô tô. Các thiết bị điện tử

Bình luận bài viết Bình luận bài viết

Khi sử dụng giao diện CAN, một vấn đề lớn liên quan đến việc thiết lập tốc độ truyền và nhận thông tin trong mô-đun CAN của vi điều khiển. Bài viết mô tả các nguyên tắc chung của cài đặt này theo thông số kỹ thuật của Bosch. Ví dụ: các công thức cơ bản để tính giá trị của các tham số được ghi vào thanh ghi điều khiển của mô-đun CAN của bộ vi điều khiển ARM LPC23xx và STM32F103 được đưa ra và một chương trình do tác giả phát triển giúp chọn tùy chọn tốt nhất sẽ được xem xét.

Giao diện CAN (mạng vùng điều khiển - mạng cục bộ của bộ điều khiển) bắt đầu vào giữa những năm 80 của thế kỷ trước từ công ty Robert Bosch Gmbh của Đức, công ty đã tạo ra nó như một phương tiện kinh tế để kết hợp các bộ điều khiển điều khiển hệ thống phương tiện vào một mạng thông tin. Thực tế là khi công nghệ ô tô được cải thiện, các thiết bị điện tử điều khiển động cơ, hộp số và các cơ chế khác cũng vậy. Điều này dẫn đến việc hàng chục dây từ cảm biến và bộ truyền động, cũng như dây kết nối các khối khác nhau với nhau, bắt đầu kéo dài đến từng bộ phận điện tử trong xe. Tất cả những điều này không chỉ làm cho chiếc xe nặng hơn mà còn ảnh hưởng đến độ tin cậy, an toàn và khả năng bảo trì của nó.

Khi giao diện này lan rộng, các mạng tương tự bắt đầu được sử dụng trong các lĩnh vực khác, đặc biệt là để tự động hóa các quy trình công nghệ. Độ tin cậy cao của khả năng bảo vệ thông tin chống biến dạng khi làm việc trong điều kiện khắc nghiệt và tốc độ truyền đủ cao (lên đến 1 Mbps) giúp cAn có thể sử dụng ở những nơi khác với mục đích ban đầu. Độ tin cậy của mạng được đảm bảo nhờ sự hiện diện của các cơ chế đã phát triển để phát hiện và sửa lỗi, tự cách ly các nút bị lỗi và không nhạy cảm với nhiễu điện từ ở mức độ cao.

Hệ tư tưởng CAN dựa trên mô hình OSI / ISO bảy cấp độ (nói một cách đơn giản, đây là sự phân chia ảo các quá trình truyền và nhận thông tin thành bảy cấp độ). Thật vô nghĩa khi đi sâu vào lĩnh vực này, vì nó được đề cập rộng rãi trong nhiều nguồn, chẳng hạn như trong [1]. Hiện tại, hai cấp độ được chuẩn hóa: vật lý (một phần) và kênh.

Phương tiện truyền vật lý không được xác định trong thông số kỹ thuật CAN của Bosch, nhưng thường được hiểu là mạng kiểu bus có lớp vật lý ở dạng một cặp dây theo tiêu chuẩn ISO 11898. Các loại kết nối và tốc độ truyền hiện không được chuẩn hóa nhưng thường được chỉ định trong thông số kỹ thuật của các lớp cao hơn.

Tất cả các nút mạng được kết nối song song với hai dây của đường kết nối chúng (CAN_H và CAN_L). Ở cuối đường dây liên lạc, phải lắp đặt các đầu cuối - điện trở có điện trở 120 ôm. Trong trường hợp không có đường truyền, điện áp trên cả hai dây so với thân xe hoặc dây chung của hệ thống lắp đặt công nghệ là 2,5 V. Một đơn vị logic (theo thuật ngữ được sử dụng trong CAN, một bit có giá trị này được gọi là lõm) tương ứng với trạng thái bus trong đó mức điện áp trên dây CaN_H cao hơn trên CAN_L. Số XNUMX logic (bit có giá trị như vậy được gọi là trội) - ngược lại. Khi một số máy phát hoạt động đồng thời, bit lặn trong đường dây bị triệt tiêu bởi bit chiếm ưu thế.

Người ta cho rằng trạng thái thụ động của bus tương ứng với mức logic. Nó ở trong đó khi không có tin nhắn nào được truyền đi. Truyền tin nhắn luôn bắt đầu với bit chiếm ưu thế. Các dây bus trong mô-đun CAN của mỗi nút được kết nối với một con chip đặc biệt - trình điều khiển bus thực hiện các chức năng của bộ thu phát. Ngoài ra, trình điều khiển có thể cung cấp thêm một số tính năng:

- quy định tốc độ quay của tín hiệu bằng cách thay đổi dòng điện đầu vào;
- bảo vệ đầu ra của máy phát khỏi hư hỏng trong trường hợp có thể xảy ra đoản mạch dây CAN_H và CAN_L với mạch nguồn sử dụng bộ giới hạn dòng tích hợp, cũng như khỏi sự tăng điện áp ngắn hạn trên các dây này;
- bảo vệ nhiệt bên trong;
- chế độ năng lượng thấp, trong đó bộ thu tiếp tục báo cáo trạng thái của xe buýt cho bộ điều khiển để khi phát hiện hoạt động của nó, nó có thể chuyển trình điều khiển sang hoạt động bình thường.

Việc mã hóa thông tin để truyền qua bus được thực hiện bằng phương pháp NRZ (Non Return to Zero). Nó có một nhược điểm đáng kể: khi truyền một chuỗi dài các đơn vị, hóa ra không có khoảng dừng giữa chúng. Điều này dẫn đến việc người nhận không thể phân biệt giữa trình tự như vậy và khoảng dừng giữa các thông báo. Để giải quyết vấn đề này, cái gọi là bitstaffing (Nhồi bit - nhồi bit) được sử dụng. Nó bao gồm thực tế là sau năm bit giống hệt nhau được truyền liên tiếp, một bit bổ sung có giá trị ngược lại được chèn vào luồng của chúng. Người nhận, sau khi tìm thấy năm bit giống hệt nhau liên tiếp, sẽ xóa bit theo sau chúng, được chèn vào trong quá trình truyền.

Hai loại mã định danh được xác định ở lớp liên kết: CAN tiêu chuẩn (dài 11 bit) và CAN mở rộng (29 bit). Họ xác định định dạng tin nhắn.

Trong số các cấp độ cao hơn, có thể lưu ý các thông số kỹ thuật CAL/CANopen, CAN Kingdom, DeviceNet và SDS (Smart Distributed System), thông tin chi tiết hơn có thể được tìm thấy trên Internet [2].

Theo định nghĩa, mạng CAN kết hợp một số bộ điều khiển hạn chế được đặt cục bộ trong cùng một cài đặt, phòng hoặc một số phòng lân cận. Nó không vượt ra ngoài ranh giới của đối tượng công nghệ. Hệ tư tưởng của mạng được xây dựng trên một số điểm. Đầu tiên, bộ điều khiển truyền liên tục lắng nghe các tín hiệu của chính nó được truyền qua mạng. Điều này giúp có thể thực hiện xác minh từng bit về tính chính xác của thông tin được truyền (kiểm tra giám sát bit) bởi một số nút, ngược lại, đối với các mạng Ethernet. Nếu bit mà bộ điều khiển nhận được khác với bit được truyền bởi bộ điều khiển, thì quá trình truyền dừng lại và Lỗi Bit được tạo ra.

Khi truyền một mã định danh tin nhắn, cơ chế này được sử dụng để giải quyết xung đột và khi truyền thông tin, tính chính xác của nó sẽ được kiểm tra. Nếu một lỗi được phát hiện trong nó, thì bộ phát sẽ ngắt thông báo của nó và đưa ra Khung lỗi trên xe buýt để thông báo cho các nút mạng khác về sự kiện này. Để xác nhận đã nhận được tin nhắn, khung dữ liệu chứa trường ACK. Trong trường này, mỗi nút đã nhận được thông báo được truyền xác nhận với nguồn của nó rằng nó đã được nhận. Một tin nhắn chưa được xác nhận sẽ được gửi lại bởi máy phát cho đến khi nhận được xác nhận.

Tất cả các nút mạng đều nhận được thông tin được truyền, do đó không thể gửi tin nhắn đến bất kỳ nút cụ thể nào. Nhưng nếu các bộ điều khiển hiện đại có các công cụ lọc lưu lượng thì đây không phải là vấn đề lớn.

Mạng CAN được phân cấp. Đây có thể được coi là một điểm cộng lớn nếu chúng ta hơi khác với hệ tư tưởng thông thường, theo đó mạng phải có một nút chính điều khiển nó và các nút phụ thực hiện các lệnh của nó. Trong một mạng phi tập trung, các nút thông minh hơn. Nó tiếp tục hoạt động nếu bất kỳ trong số chúng bị lỗi.

Thông tin được truyền bằng các thông báo định dạng tiêu chuẩn - Data Frame (truyền thông tin), Remote Transmission Request Frame hay đơn giản là Remote Frame (yêu cầu thông tin), Error Frame (thông báo lỗi), Overload Frame (thông báo quá tải bộ điều khiển).

Các khung dữ liệu được sử dụng phổ biến nhất. Định dạng và nội dung của chúng được hiển thị trong Bảng. 1 cho tiêu chuẩn, và trong bảng. 2 cho các khung mở rộng. Khung yêu cầu thông tin chỉ khác với khung thông tin (định dạng chuẩn hoặc định dạng mở rộng) ở chỗ bit RTR luôn ẩn và không có trường thông tin.

Bảng 1

Lĩnh vực Độ dài, bit (byte) Giá trị
Khung bắt đầu 1 Nên chiếm ưu thế (0)
Định danh 11
Yêu cầu chuyển giao (RTR) 1 Nên chiếm ưu thế (0)
Tính năng mở rộng số nhận dạng (IDE) 1 Nên chiếm ưu thế (0)
Dành riêng (rO) 1
Độ dài trường thông tin (DLC) 4 Được chỉ định bằng byte
Trường thông tin (0 - 8) Thông tin được truyền đi
Checksum (CRC) 15 Tính trên toàn bộ khung hình
Dấu phân cách séc 1 Phải là tính trạng lặn (1)
Khoảng thời gian xác nhận (ACK) 1 Máy phát gửi lặn (1), máy thu chèn trội (0)
Dấu phân cách xác nhận 1 Phải là tính trạng lặn (1)
Kết thúc khung (EOF) 7 Phải là tính trạng lặn (1)

Bảng 2

Lĩnh vực Độ dài, bit (byte) Giá trị
Khung bắt đầu 1 Nên chiếm ưu thế (0)
ID A 11 Phần đầu tiên của mã định danh
Giả mạo yêu cầu chuyển (SRR) 1 Phải là tính trạng lặn (1)
Tính năng mở rộng số nhận dạng (IDE) 1 Phải là tính trạng lặn (1)
ID B 18 Phần thứ hai của mã định danh
Yêu cầu chuyển (RTR) 1 Nên chiếm ưu thế (0)
Dành riêng (r1 và r0) 2
Độ dài trường thông tin (DLC) 4 Được chỉ định bằng byte
Trường thông tin (0 - 8) Thông tin được truyền đi
Tổng kiểm tra (CPS) của toàn bộ khung hình 15 Tính trên toàn bộ khung hình
Dấu phân cách séc 1 Phải là tính trạng lặn (1)
Xác nhận (ACK) 1 Máy phát sẽ gửi một âm chìm, máy thu chèn một tín hiệu trội
Dấu phân cách xác nhận 1 Phải là tính trạng lặn (1)
Kết thúc khung (EOF) 7 Phải là tính trạng lặn (1)

Khung lỗi bao gồm trường Cờ lỗi, chứa sáu bit có cùng giá trị (và do đó vi phạm quy tắc sắp xếp bit) và trường Dấu phân cách lỗi gồm tám bit lặn. Quá trình truyền của nó khiến tất cả các nút mạng đăng ký lỗi định dạng và tự động truyền các Khung lỗi của chúng tới mạng. Kết quả của quá trình này là việc tự động truyền lại thông tin vào mạng bởi nút đã truyền thông điệp ban đầu.

Khung quá tải lặp lại cấu trúc và logic của Khung lỗi, nhưng được truyền bởi một nút hiện không thể xử lý thông báo đến và do đó yêu cầu truyền lại. Hiện tại, nó thực tế không được sử dụng.

Mỗi nút mạng có một trình điều khiển bus, một bộ điều khiển CAN (chịu trách nhiệm tương tác với mạng, thực hiện giao thức trao đổi) và một bộ vi điều khiển. Thông thường, bộ điều khiển CAN được kết hợp với bộ vi điều khiển. Trong trường hợp này, hai vi mạch là đủ để tạo nút mạng CAN - bộ vi điều khiển và trình điều khiển xe buýt.

Đồng bộ hóa trong CAN có liên quan chặt chẽ đến cách thông tin được truyền qua mạng. Người dùng có cơ hội lập trình tốc độ truyền thông tin (từ 1 Kbps đến 1 Mb/giây), vị trí của điểm lấy mẫu bit (thời điểm) trong khoảng thời gian truyền của nó và số lượng mẫu của mỗi bit. Nhờ đó, mạng có thể được tối ưu hóa cho một ứng dụng cụ thể. Nhưng nó cũng tạo ra một số vấn đề.

Bất kỳ thông tin nào được truyền qua bus nối tiếp đều có thể được chia thành các bit cơ bản, thời gian truyền của bit cơ bản này NBT (Thời gian bit danh nghĩa) xác định tốc độ truyền thông tin NBR (Tốc độ bit danh nghĩa) - số bit được truyền mỗi giây bởi một máy phát lý tưởng mà không khôi phục khoảng thời gian xung nhịp:

NBR=1/NBT(1)

Như thể hiện trong hình. 1, khoảng NBT được chia thành nhiều phân đoạn không chồng lấp, mỗi phân đoạn bao gồm một số nguyên phân đoạn thời gian, được gọi là lượng tử thời gian (TQ).


Hình 1

Vì tốc độ truyền NBR cho tất cả các nút mạng phải giống nhau, nên sử dụng công thức (1), họ thường tìm giá trị NBT cần thiết và sau đó chọn thời lượng của từng phân đoạn tạo thành giá trị đó:

NBT=Tđồng bộ hóa +TPropSeg +TPS1 +TPS2(2)

nơi Tđồng bộ hóa - thời lượng phân đoạn đồng bộ hóa; TPropSeg - thời lượng của đoạn lan truyền; tPS1 - thời lượng của đoạn 1; tPS2 - thời lượng của đoạn 2.

Phân đoạn thời gian (SyncSeg) - đầu tiên theo thứ tự, được sử dụng để đồng bộ hóa các nút trên xe buýt. Sự xuất hiện của sự khác biệt cấp độ ban đầu sẽ được mong đợi trong phân khúc này. Thời hạn của nó là cố định và luôn bằng 1TQ.

Phân khúc phân phối (PropSeg) phục vụ để bù cho độ trễ tín hiệu vật lý giữa các nút. Thời lượng của nó phụ thuộc vào thời gian lan truyền của tín hiệu từ nút truyền đến nút nhận và ngược lại, bao gồm cả độ trễ liên quan đến trình điều khiển xe buýt. Nó có thể nhận giá trị từ 1TQ đến 8TQ.

Phân đoạn giai đoạn 1 và 2 (PS1 và PS2) được sử dụng để bù cho sự biến dạng pha của việc sụt giảm xe buýt. Trong quá trình đồng bộ phục hồi đồng hồ, máy thu có thể kéo dài PS1 hoặc rút ngắn PS2. Theo thông số kỹ thuật ban đầu từ Bosch, thời lượng của PS1 và PS2 có thể dao động từ 1TQ đến 8TQ, nhưng đối với một số mô-đun CAN, các giá trị này có thể khác nhau.

Giữa các phân đoạn PS1 và PS2 có một thời điểm được gọi là điểm lấy mẫu bit. Nó đọc và giải thích mức logic của tín hiệu. Trong một số bộ điều khiển CAN, có chế độ đọc ba lần mức tín hiệu của từng bit. Nhưng ngay cả trong trường hợp này, điểm chính được coi là giữa PS1 và PS2, và hai điểm còn lại góp phần đưa ra quyết định chính xác về giá trị của bit theo tiêu chí đa số (hai hoặc ba mẫu cùng cấp).

Như đã đề cập ở trên, thời gian truyền bit danh định bao gồm một số nguyên các lát thời gian TQ. Thời lượng của lượng tử phụ thuộc vào tần số của bộ tạo đồng hồ mô-đun Fosc và hệ số phân chia của nó bởi bộ chia trước BRP. Quan hệ giữa TQ, Fosc và BRP là khác nhau đối với các loại vi điều khiển khác nhau. Ví dụ: đối với MSR2510, công thức hợp lệ

TQ = 2 (BRP + 1) / Fosc . (3)

Đối với vi điều khiển STM32F và LPC23xx, công thức có dạng như sau:

TQ = (BRP + 1) / Fosc . (4)

Khi chọn thời lượng của các phân đoạn, sẽ thuận tiện hơn khi sử dụng các lát cắt thời gian TQ, thay vì các đơn vị thời gian tiêu chuẩn. Ở đây và bên dưới, chúng tôi sẽ chỉ định tên của phân khúc (ví dụ: PropSeg) và thời lượng của nó theo lượng tử. Có một số yêu cầu phải được đáp ứng:

PropSeg+PS1 ≥ PS2; (5)

PropSeg + PS1 ≥ Tchống đỡ; (6)

PS2 > SJW. (7)

Tchống đỡ trong bất đẳng thức (6) - độ trễ truyền tín hiệu trong mạng. Giả sử rằng tất cả các nút trong mạng có độ trễ bên trong tương tự nhau, thì độ trễ lan truyền có thể được tính bằng công thức

Tchống đỡ = 2 (Txe buýt +TCMP +TTiến sĩ), (một)

nơi Txe buýt - thời gian khứ hồi của tín hiệu trong môi trường vật lý của xe buýt; tCMP - độ trễ trong bộ so sánh đầu vào; tTiến sĩ - chậm trễ trong trình điều khiển đầu ra.

SJW (Độ rộng bước nhảy đồng bộ hóa - chiều rộng của bước nhảy đồng bộ hóa) trong bất đẳng thức (7) - thời lượng của đoạn chuyển tiếp đồng bộ hóa, được giới thiệu bổ sung để điều chỉnh thời lượng nhận bit khi cần thiết. Được sử dụng để đồng bộ hóa việc nhận với các tin nhắn được truyền. Ngoài ra, nhiễu bên ngoài tạo ra các tình huống trong đó tốc độ truyền danh định được lên kế hoạch trong mạng không tương ứng với tốc độ thực tế. Phân khúc bổ sung này cũng được sử dụng để bù đắp cho sự khác biệt này. Thời hạn của SJW nằm trong khoảng 1TQ-4TQ.

Các phân đoạn PS1 và PS2, cùng với SJW, được sử dụng để bù cho độ trôi của đồng hồ nút. PS1 và PS2 có thể được kéo dài hoặc rút ngắn khi cần thiết. Đồng bộ hóa xảy ra khi chuyển đổi từ trạng thái bus lặn (1) sang trạng thái bus chiếm ưu thế (0) và kiểm soát lượng thời gian giữa quá trình chuyển đổi đó và điểm mẫu bit. Quá trình chuyển đổi được đồng bộ hóa nếu nó xảy ra trong phân đoạn SyncSeg, nếu không thì sẽ có lỗi pha - khoảng thời gian giữa quá trình chuyển đổi và kết thúc SyncSeg, được đo bằng lát thời gian TQ.

Có hai loại đồng bộ hóa: phần cứng và đồng bộ lại. Phần cứng chỉ được thực hiện một lần trong quá trình chuyển đổi đầu tiên từ trạng thái lặn sang trạng thái chiếm ưu thế, kết thúc giai đoạn nghỉ của xe buýt. Cạnh này chỉ điểm bắt đầu của khung hình (SOF - Start of Frame). Đồng bộ hóa phần cứng đặt lại bộ đếm đồng bộ hóa, khiến cạnh nằm trong SyncSeg. Tại thời điểm này, tất cả các máy thu được đồng bộ hóa với máy phát.

Chạy lại xung nhịp với phục hồi xung nhịp được thực hiện để duy trì xung nhịp ban đầu do phần cứng đặt. Nếu không phục hồi đồng hồ, các máy thu có thể không đồng bộ do tần số của các bộ tạo đồng hồ trong các nút mạng bị lệch. Thời gian này dựa trên Vòng lặp khóa pha kỹ thuật số (DPLL), so sánh vị trí thực tế của quá trình chuyển đổi từ ẩn sang chiếm ưu thế trên xe buýt với vị trí của quá trình chuyển đổi dự kiến ​​trong SyncSeg và điều chỉnh thời gian bit nếu cần.

Lỗi pha e được xác định bởi vị trí của cạnh so với phân đoạn SyncSeg, được đo bằng TQ:

e = 0 - quá trình chuyển đổi bên trong phân đoạn SyncSeg;

e > 0 - quá trình chuyển đổi diễn ra trước điểm lấy mẫu, lát thời gian TQ được thêm vào PS1;

e < 0 - quá trình chuyển đổi diễn ra sau điểm lấy mẫu của bit trước đó, lát thời gian TQ bị trừ khỏi PS2.

Reclocking với phục hồi đồng hồ không thể xảy ra ở đầu khung, vì đồng hồ phần cứng đã được thực hiện ở đó.

Nếu giá trị tuyệt đối của lỗi pha nhỏ hơn hoặc bằng SJW, kết quả của phần cứng và đồng bộ lại là như nhau. Nếu lỗi pha lớn hơn SJW, quá trình đồng bộ lại không thể bù hoàn toàn cho lỗi pha.

Chỉ cho phép một lần đồng bộ hóa giữa hai điểm lấy mẫu. Nó duy trì một khoảng thời gian đã đặt giữa mức giảm và điểm lấy mẫu, cho phép mức tín hiệu ổn định và lọc ra các thay đổi tín hiệu ngắn hơn so với PropSeg + PS1.

Đồng bộ hóa cũng liên quan đến trọng tài. Tất cả các nút được đồng bộ hóa chặt chẽ với nút bắt đầu truyền trước. Nhưng tín hiệu của một nút khác, bắt đầu truyền muộn hơn một chút, không thể được đồng bộ hóa hoàn hảo. Tuy nhiên, máy phát đầu tiên sẽ không nhất thiết phải giành được quyền phân xử, vì vậy máy thu phải tự đồng bộ hóa không phải với nó mà với máy đã giành được nó. Điều tương tự cũng xảy ra trong trường ACK, nơi cần phải đồng bộ hóa với nút đầu tiên bắt đầu truyền bit xác nhận. Tất cả điều này dẫn đến việc giảm độ trôi lẫn nhau cho phép của tần số của các bộ tạo đồng hồ được cài đặt trong các nút xe buýt.

Có một số quy tắc đồng bộ hóa:

- chỉ sử dụng các chuyển đổi từ trạng thái lặn sang trạng thái trội (từ một đến không);

- chỉ cho phép một đồng bộ hóa trong quá trình truyền bit;

- quá trình chuyển đổi được sử dụng để đồng bộ hóa, với điều kiện là mức logic của tín hiệu được đọc tại điểm lấy mẫu trước đó khác với mức được đặt trên bus ngay sau quá trình chuyển đổi;

- nút truyền không khôi phục khoảng thời gian đồng hồ với sai số pha dương (e > 0), tức là nút không điều chỉnh theo thông báo của chính nó. Nhưng người nhận đồng bộ hóa như bình thường;

- nếu giá trị tuyệt đối của sai số pha lớn hơn bước nhảy pha SJW, thì thời lượng của đoạn pha tương ứng (PS1 hoặc PS2) được thay đổi thành giá trị bằng SJW.

Điều trên dẫn đến thực tế là chiều dài vật lý của bus bị giới hạn bởi tốc độ truyền thông tin qua nó. Tất cả các nút trên một bus cần đọc trạng thái của nó trong cùng một khoảng thời gian bit. Kết quả là tốc độ truyền tối đa 1 Mbps chỉ có thể đạt được với chiều dài xe buýt không quá 30 m.

Xem xét cách cấu hình bộ điều khiển CAN trong các bộ vi điều khiển cụ thể.

Trong các bộ vi điều khiển thuộc họ LPC (ví dụ: dòng LPC23xx), các thanh ghi CANxBTR được sử dụng để đặt tốc độ truyền trên bus CAN, trong đó x là số bộ điều khiển CAN (có thể có 1 hoặc 2, trong một số trường hợp - 4). Các tham số sau được đặt ở đây (khoảng thời gian của các số bit thanh ghi bị chúng chiếm giữ được chỉ định trong ngoặc vuông):

BRP (CANxBTR[9:0]) - Giá trị đặt trước tần số bus APB để bộ điều khiển CAN sử dụng thêm. Tham số này xác định khoảng thời gian của lượng tử thời gian TQ, được xác định theo công thức (4) khi F được thế vào nóosc= 1 / TAPB, nơi TAPB - khoảng thời gian lặp lại xung trên bus hệ thống APB của bộ vi điều khiển.

SJW (CANxBTR[15:14]) - độ rộng bước nhảy đồng bộ hóa trong lượng tử TQ lớn hơn một giá trị được chỉ định tại đây.

TSEG1 (CANxBTR[19:16]) và TSEG2 (CANxBTR[20:22]) - thời lượng của các phân đoạn (tương ứng là PS1 và PS2) trong lượng tử TQ lớn hơn một giá trị được chỉ định tại đây.

SAM (CANxBTR[23]) - đặt số lần đọc giá trị của từng bit: 0 - một lần, 1 - ba lần. Tùy chọn thứ hai thường được sử dụng trong các mạng tốc độ thấp.

Khi chọn các tùy chọn này, bạn phải được hướng dẫn bởi các quy tắc sau:

TPS2 ≥ 2 TQ (9)

TPS2 ≥ TSJW (10)

TPS1 ≥ TPS2 (11)

Các bộ vi điều khiển sê-ri STM32F có một thanh ghi tương tự và nó được gọi là CAN_BTR. Nó chứa các trường sau:

BRP (CAN_BTR [9: 0]), TS1 (CAN_BTR[19:16]) và TS2 (CAN_BTR[22:20]) - trùng khớp về mục đích và vị trí trong thanh ghi với các trường BPR, TSEG1 và TSEG2 của thanh ghi CANxBTR đã thảo luận ở trên. Khi tính giá trị TQ nên thay công thức (4) vào Fosc= 1 / TPCLK, nơi TPCLK - khoảng thời gian lặp lại xung trên bus VPB của vi điều khiển.

SJW (CAN_BTR[25:24]) - khác với trường của thanh ghi CANxBTR cùng tên chỉ ở các bit chiếm trong thanh ghi.

LBKM (CAN_BTR[30]) - một trong thanh ghi này đặt chế độ lặp lại, trong đó thông điệp đã truyền được nhận bởi người nhận của chính nó, nhưng không được gửi đến mạng.

PHIM (CAN_BTR[31]) - một đơn vị trong thanh ghi này đặt chế độ im lặng, trong đó bộ điều khiển nhận thông báo đến từ mạng nhưng không truyền bất kỳ thứ gì.

Cả hai chế độ được đề cập đều được sử dụng để gỡ lỗi.

Đối với các bộ vi điều khiển đang được xem xét, công thức (2) được đơn giản hóa do không có phân đoạn SyncSeg và PropSeg. Chúng được thay thế bằng một phân đoạn có thời lượng 1TQ. Công thức cho chúng trông như thế này:

NBT=TQ+TPS1 +TPS2 (12)

Tốc độ truyền trên bus CAN tính bằng bit trên giây được tính toán trong chương trình bằng công thức

NBR = (F/(BRP + 1)) (1/(PS1 +PS2 +3)) (13)

trong đó F là tần số của bus hệ thống APB hoặc VPB tương ứng cho STM32F hoặc LPC23xx. Nếu tham số SJW khác không, giá trị tối đa

BRtối đa = (F/(BRP + 1)) (1/(PS1 +PS2 - SJW + 2)) (14)

và tối thiểu

BRphút = (F/(BRP + 1)) (1/(PS1 +PS2 + SJW + 4)) (15)

giá trị tốc độ truyền trên bus CAN, trong khoảng thời gian giữa đó đồng bộ hóa được cung cấp.

Cửa sổ chương trình CANTools được hiển thị trong hình. 2. Dữ liệu ban đầu cho nó là loại vi điều khiển, tốc độ truyền thông tin cần thiết và tần số của bus hệ thống, từ đó bộ điều khiển CAN được tạo xung nhịp. Bắt đầu tính toán, trước hết, bạn nên chọn loại vi điều khiển. Trong chương trình đang được xem xét, chỉ có hai tùy chọn - LPC23xx hoặc STM32F103. Tiếp theo, đặt tốc độ truyền yêu cầu trên bus CAN theo kilobit trên giây. Sau đó, bạn có thể đặt tần số bus hệ thống tính bằng megahertz. Chỉ còn cách nhấn nút "Tính toán" trên màn hình và nhận kết quả.


Hình 2

Chương trình hoạt động như sau: giá trị BRP thay đổi theo chu kỳ từ 0 đến 512. Tần số của các lát thời gian và số lượng của chúng có trong khoảng thời gian NBT được tính cho tần số bus hệ thống, giá trị BRP và tốc độ truyền đã cho. Số lượng tử phải là một số nguyên và nhỏ hơn 23 - giá trị tối đa có thể được ghi vào các thanh ghi của vi điều khiển. Sau đó, lặp qua các giá trị TSEG2 từ 2 đến 7 với giá trị TSEG1 giảm tương ứng. Tổng của chúng không đổi.

Màn hình hiển thị tốc độ lặp lại lượng tử Fsc=1/TQ, thông qua một đường liền nét - thời lượng của lượng tử TQ, sau đó là giá trị của trường BRP của thanh ghi tương ứng. Sau đó, mỗi cặp dòng mô tả kết quả của một trong các tùy chọn tính toán.

Các tham số TSEG1 và TSEG2 trong dòng đầu tiên của cặp tương ứng với các trường cùng tên trong thanh ghi CANxBTR của vi điều khiển LPC23xx hoặc các trường TS1, TS2 trong thanh ghi CAN_BTR của vi điều khiển STM32F103. Tổng của chúng, giá trị của từng trường, cũng như giá trị của trường SJW, nếu nó không phải là null, được đưa ra. Dòng cuối cùng hiển thị giá trị thập lục phân CANBTR, giá trị này sẽ được ghi vào thanh ghi CANxBTR hoặc CAN_BTR (theo loại vi điều khiển) để thực hiện tùy chọn được tính toán.

Dòng thứ hai của cặp hiển thị các giá trị của tốc độ truyền thông tin tối đa và tối thiểu trên bus CAN (nếu SJW > 0) và vị trí của điểm mẫu của bit so với thời điểm bắt đầu truyền của nó dưới dạng phần trăm thời lượng của khoảng thời gian truyền.

Đối với một số giá trị BRP, kết quả tính toán không được hiển thị. Điều này có nghĩa là tốc độ lặp lại lát thời gian hoặc tốc độ truyền trên bus CAN, được tính theo công thức (13), hóa ra được biểu thị dưới dạng một số phân số. Trong những trường hợp như vậy, không có phép tính nào được thực hiện.

Chương trình CANTools, tự động hóa quy trình tính toán, không đưa ra khuyến nghị về cách kết hợp các tham số nào được sử dụng tốt nhất trong ứng dụng thực tế. Nhà phát triển mạng phải chọn phương án tốt nhất từ ​​những phương án được đề xuất, dựa trên kiến ​​thức và kinh nghiệm hiện có. Đối với những người mới bắt đầu làm chủ CAN, tác giả có thể khuyên bạn nên tuân theo quy tắc sau: khoảng thời gian giữa thời điểm bắt đầu một bit và điểm lấy mẫu của nó phải nằm trong khoảng từ 70 đến 85% thời lượng bit. Có lẽ, trên thực tế, bạn sẽ phải thử nghiệm thực tế một số tùy chọn trong số những tùy chọn do chương trình đề xuất.

Chương trình CANTools có thể được tải xuống từ ftp://ftp.radio.ru/pub/2014/01/can.zip.

Văn chương

  1. Mô hình mạng OSI.
  2. Mạng vùng điều khiển.

Tác giả: A. Abramovich

Xem các bài viết khác razdela Ô tô. Các thiết bị điện tử.

Đọc và viết hữu ích bình luận về bài viết này.

<< Quay lại

Tin tức khoa học công nghệ, điện tử mới nhất:

Máy tỉa hoa trong vườn 02.05.2024

Trong nền nông nghiệp hiện đại, tiến bộ công nghệ đang phát triển nhằm nâng cao hiệu quả của quá trình chăm sóc cây trồng. Máy tỉa thưa hoa Florix cải tiến đã được giới thiệu tại Ý, được thiết kế để tối ưu hóa giai đoạn thu hoạch. Công cụ này được trang bị cánh tay di động, cho phép nó dễ dàng thích ứng với nhu cầu của khu vườn. Người vận hành có thể điều chỉnh tốc độ của các dây mỏng bằng cách điều khiển chúng từ cabin máy kéo bằng cần điều khiển. Cách tiếp cận này làm tăng đáng kể hiệu quả của quá trình tỉa thưa hoa, mang lại khả năng điều chỉnh riêng cho từng điều kiện cụ thể của khu vườn, cũng như sự đa dạng và loại trái cây được trồng trong đó. Sau hai năm thử nghiệm máy Florix trên nhiều loại trái cây khác nhau, kết quả rất đáng khích lệ. Những nông dân như Filiberto Montanari, người đã sử dụng máy Florix trong vài năm, đã báo cáo rằng thời gian và công sức cần thiết để tỉa hoa đã giảm đáng kể. ... >>

Kính hiển vi hồng ngoại tiên tiến 02.05.2024

Kính hiển vi đóng vai trò quan trọng trong nghiên cứu khoa học, cho phép các nhà khoa học đi sâu vào các cấu trúc và quá trình mà mắt thường không nhìn thấy được. Tuy nhiên, các phương pháp kính hiển vi khác nhau đều có những hạn chế, trong đó có hạn chế về độ phân giải khi sử dụng dải hồng ngoại. Nhưng những thành tựu mới nhất của các nhà nghiên cứu Nhật Bản tại Đại học Tokyo đã mở ra những triển vọng mới cho việc nghiên cứu thế giới vi mô. Các nhà khoa học từ Đại học Tokyo vừa công bố một loại kính hiển vi mới sẽ cách mạng hóa khả năng của kính hiển vi hồng ngoại. Thiết bị tiên tiến này cho phép bạn nhìn thấy cấu trúc bên trong của vi khuẩn sống với độ rõ nét đáng kinh ngạc ở quy mô nanomet. Thông thường, kính hiển vi hồng ngoại trung bị hạn chế bởi độ phân giải thấp, nhưng sự phát triển mới nhất của các nhà nghiên cứu Nhật Bản đã khắc phục được những hạn chế này. Theo các nhà khoa học, kính hiển vi được phát triển cho phép tạo ra hình ảnh có độ phân giải lên tới 120 nanomet, cao gấp 30 lần độ phân giải của kính hiển vi truyền thống. ... >>

Bẫy không khí cho côn trùng 01.05.2024

Nông nghiệp là một trong những lĩnh vực quan trọng của nền kinh tế và kiểm soát dịch hại là một phần không thể thiếu trong quá trình này. Một nhóm các nhà khoa học từ Viện nghiên cứu khoai tây trung tâm-Hội đồng nghiên cứu nông nghiệp Ấn Độ (ICAR-CPRI), Shimla, đã đưa ra một giải pháp sáng tạo cho vấn đề này - bẫy không khí côn trùng chạy bằng năng lượng gió. Thiết bị này giải quyết những thiếu sót của các phương pháp kiểm soát sinh vật gây hại truyền thống bằng cách cung cấp dữ liệu về số lượng côn trùng theo thời gian thực. Bẫy được cung cấp năng lượng hoàn toàn bằng năng lượng gió, khiến nó trở thành một giải pháp thân thiện với môi trường và không cần điện. Thiết kế độc đáo của nó cho phép giám sát cả côn trùng có hại và có ích, cung cấp cái nhìn tổng quan đầy đủ về quần thể ở bất kỳ khu vực nông nghiệp nào. Kapil cho biết: “Bằng cách đánh giá các loài gây hại mục tiêu vào đúng thời điểm, chúng tôi có thể thực hiện các biện pháp cần thiết để kiểm soát cả sâu bệnh và dịch bệnh”. ... >>

Tin tức ngẫu nhiên từ Kho lưu trữ

Nền tảng không dây 6Gbps 03.03.2016

Mạng di động của thế hệ thứ năm sẽ không đồng nhất. Trên thực tế, điều này có nghĩa là việc truy cập đường truyền thông tin liên lạc của thuê bao sẽ không chỉ được thực hiện bằng cách kết nối với các trạm gốc của các nhà khai thác viễn thông, mà còn sử dụng các mạng tần số vô tuyến địa phương.

Đây là những mạng được gọi là RAN, sẽ cung cấp truyền dữ liệu tốc độ cao mà không cần tải các trạm gốc. Ví dụ, các mạng khu vực như vậy được lên kế hoạch sử dụng để quản lý giao thông hoặc cho các chuyến bay bằng máy bay không người lái. Mạng RAN được nhắm mục tiêu vào mmWave tải tương đối thấp.

Một nhóm các công ty Nhật Bản, bao gồm Viện Công nghệ Tokyo, Sony, Đài phát thanh Nhật Bản và Phòng thí nghiệm R&D KDDI, đã trình bày một nền tảng toàn diện để tổ chức mạng RAN. Các nhà phát triển đã tạo ra một giải pháp để truyền dữ liệu đến điện thoại thông minh với tốc độ lên đến 6,1 Gbps. Một gigabyte dữ liệu ở tốc độ này sẽ được truyền trong vòng chưa đầy hai giây.

Mạng sẽ là song công hai giai đoạn để truyền dữ liệu ở băng tần 40 GHz và cho hoạt động của thiết bị khách ở băng tần 60 GHz. Do đó, vấn đề dưới dạng suy giảm mạnh của sóng vô tuyến trong phạm vi milimet sẽ được loại bỏ và do cấu trúc liên kết mạng đặc biệt, vấn đề đảm bảo lượng lưu lượng đảm bảo trong trường hợp có mưa, cũng làm tắt tín hiệu milimet , sẽ được giải quyết.

Tin tức thú vị khác:

▪ Bàn phím ba nút

▪ Chẩn đoán cảm lạnh trước khi các triệu chứng xuất hiện

▪ Giữ ấm đôi chân của bạn

▪ Nền tảng không dây 6Gbps

▪ Kim loại được cải thiện với gốm sứ

Nguồn cấp tin tức khoa học và công nghệ, điện tử mới

 

Tài liệu thú vị của Thư viện kỹ thuật miễn phí:

▪ phần của trang web Sự thật thú vị. Lựa chọn các bài viết

▪ bài trực thăng. Lịch sử phát minh và sản xuất

▪ bài Vì sao Mỹ thay đổi động tác khi tuyên thệ trung thành với quốc kỳ năm 1942? đáp án chi tiết

▪ Bài báo Đổ vecni và dung môi trong tủ lạnh. Hướng dẫn tiêu chuẩn về bảo hộ lao động

▪ bài ăng-ten roi sáu dải. Bách khoa toàn thư về điện tử vô tuyến và kỹ thuật điện

▪ bài báo Chiếc đồng hồ biến mất trong hộp. tiêu điểm bí mật

Để lại bình luận của bạn về bài viết này:

Имя:


Email (tùy chọn):


bình luận:




Nhận xét về bài viết:

Petrovich2015
Mạch tốt, nhưng đường kính của dây của cuộn thứ cấp của máy biến áp là vấn đề với các bóng bán dẫn mạnh mẽ như vậy


Tất cả các ngôn ngữ của trang này

Trang chủ | Thư viện | bài viết | Sơ đồ trang web | Đánh giá trang web

www.diagram.com.ua

www.diagram.com.ua
2000-2024