Tôi muốn thực hiện liên lạc giữa PIC18F4550 và PC của mình nhưng tôi gặp khó khăn khi sử dụng UART hay USART cho khoảng cách xa. Khi sử dụng cái này thay vì cái kia có lợi hơn không?
Tôi muốn thực hiện liên lạc giữa PIC18F4550 và PC của mình nhưng tôi gặp khó khăn khi sử dụng UART hay USART cho khoảng cách xa. Khi sử dụng cái này thay vì cái kia có lợi hơn không?
Câu trả lời:
Đối với mục đích của bạn, UART và USART là cùng một thứ. UART là viết tắt của máy thu / phát không đồng bộ phổ quát . Chữ S bổ sung trong USART là viết tắt của đồng bộ . Đó chỉ là một chút khả năng bổ sung mà Microchip đã cung cấp cho mô-đun để làm cho nó hữu ích hơn trong một số trường hợp. Khả năng bổ sung đó không áp dụng trong trường hợp của bạn.
Cổng COM của PC chỉ mất một UART để nói chuyện. Việc USART có thể đã được sử dụng theo một cách khác là không liên quan đến bạn, ngoại trừ việc bạn có thể có một số bit cấu hình bổ sung phải được đặt đúng cách.
Câu trả lời ngắn: Sử dụng bất cứ thứ gì bạn có chip
Để kiểm tra đầy đủ câu hỏi, cần phải giải mã các từ viết tắt:
Một U niversal Một đồng bộ R eceiver T ransmitter là truyền thống "cổng nối tiếp" của bạn. Nó không đồng bộ theo nghĩa chỉ có một tín hiệu duy nhất được tham gia - không có đồng hồ nào được truyền đi, và thay vào đó, người nhận phải khôi phục đồng hồ, thường là bằng cách quá khổ.
Ngược lại một U niversal S ynchronous Một đồng bộ R eceiver T ransmitter là một linh hoạt hơn với thiết bị UART kiểu không đồng bộ chế độ, nhưng mà cũng có thể tùy chọn được cấu hình để hoạt động trong đồng bộ chế độ mà một chiếc đồng hồ được gửi cùng với các dữ liệu. Tùy thuộc vào khả năng, điều này có thể bao gồm sự tương tác với các định dạng nối tiếp đồng bộ nổi tiếng, ví dụ SPI hoặc I2S.
Một vài MCU có thể cung cấp cả hai loại thiết bị ngoại vi. Đối với một nhu cầu nối tiếp không đồng bộ cơ bản, bạn có thể chọn một trong hai. Tuy nhiên, sự lựa chọn của bạn có thể bị ảnh hưởng bởi các chân mà một thiết bị ngoại vi nhất định có thể hoạt động, các nhu cầu khác trong hệ thống, v.v. Bộ tải khởi động ROM nhà máy chỉ có thể hoạt động trên một số thiết bị ngoại vi chứ không phải các thiết bị ngoại vi khác. Cũng có thể có sự khác biệt về hỗ trợ bộ đệm, độ dài từ, hỗ trợ chẵn lẻ, tín hiệu điều khiển liên quan, v.v. Và giao diện phần mềm có thể hoàn toàn khác nhau giữa hai loại.
Chúng cơ bản là điều tương tự cho vi điều khiển của bạn.
USART là viết tắt của máy thu / phát không đồng bộ và không đồng bộ phổ quát. UART là viết tắt của máy thu / phát không đồng bộ phổ quát.
Truyền dữ liệu không đồng bộ hầu hết thời gian sẽ được sử dụng trong giao thức truyền thông này. Việc truyền dữ liệu đồng bộ hiếm khi được sử dụng vì bạn có giao thức truyền thông đồng bộ tốt hơn nhiều như SPI & I2C.
Bộ vi điều khiển (MCU) của bạn có Bộ thu / phát không đồng bộ / không đồng bộ phổ quát (USART) trong đó. Bộ phận chức năng này hỗ trợ chế độ giao tiếp đồng bộ và chế độ giao tiếp không đồng bộ.
Ở chế độ đồng bộ, máy phát Tx được kết nối với máy thu Rx bằng dây CLOCK và dây DATA. Mỗi lần trong một khoảng thời gian CLOCK, Tx sẽ gửi một bit khác trên DATA và Rx lấy một bit khác từ DATA. Thời gian chuyển được chi phối bởi CLOCK và do đó được biết đến với cả Tx và Rx. Vì vậy, cả Tx và Rx đều có thể sử dụng tốc độ bit cao hơn ở chế độ không đồng bộ.
Tuy nhiên, cần có hai dây / chân kết nối thay vì một và lệch hoặc jitter quá mức giữa CLOCK và DATA dẫn đến dữ liệu bị hỏng được nhận. Thời gian trong trình điều khiển dòng và bộ thu dòng mang CLOCK và DATA phải được kết hợp chặt chẽ để giảm độ lệch này. Cả giao diện và các yếu tố hai dây trở nên nổi bật hơn trong khoảng cách xa hơn, với các dây cáp dài và / hoặc nhiều bước kết nối.
Trong chế độ không đồng bộ, máy phát Tx được kết nối với máy thu Rx bằng dây DATA. Mỗi lần trên một khoảng thời gian bit, Tx sẽ gửi một bit khác trên DATA và Rx lấy một bit khác từ DATA. Thời gian truyền được điều chỉnh bởi các bộ dao động riêng biệt tần số trong Tx và Rx, mỗi bộ này không xác định với nhau và sẽ hơi khác nhau. Do đó, tốc độ bit đáng tin cậy tối đa thấp hơn so với chế độ đồng bộ.
Khi bắt đầu mỗi byte mới, Rx sử dụng quá trình chuyển đổi bit STOP-START bắt đầu để đồng bộ hóa lại với thời gian chuỗi bit đến. Điều này làm cho độ trễ từ trình điều khiển / bộ thu, cáp và đầu nối không liên quan đến thời gian bit, mặc dù không liên quan đến chất lượng bit. Chỉ cần một dây cho mỗi tín hiệu truyền thông thay vì hai dây, giúp giảm chi phí trong cáp, đầu nối và trình điều khiển / bộ thu.
Vì vậy, nó phụ thuộc vào chi phí chấp nhận được của bạn, khoảng cách bạn đang đi và khả năng của Tx và Rx. PC của bạn có thể chỉ hỗ trợ chế độ không đồng bộ trên cổng COM tiêu chuẩn, yêu cầu một cổng đặc biệt (PCIe hoặc USB, có khả năng là USB) cho chế độ đồng bộ.