Giới thiệu giao tiếp UART

Một phần của tài liệu Giám sát điện năng sử dụng và điều khiển thiết bị tránh quá tải (Trang 43)

UART (Bộ truyền nhận dữ liệu nối tiếp bất đồng bộ) là một trong những giao thức truyền thông giữa thiết bị với thiết bị được sử dụng nhiều nhất. Bạn có thể thấy giao tiếp UART được sử dụng nhiều trong các ứng dụng để giao tiếp với các module như: Wifi, Bluetooth, Xbee, module đầu đọc thẻ RFID với Raspberry, Arduino hoặc vi điều khiển khác. Đây cũng là chuẩn giao tiếp thông dụng và phổ biến trong công nghiệp từ trước đến nay.

Khi được cấu hình đúng cách, UART có thể hoạt động với nhiều loại giao thức nối tiếp khác nhau liên quan đến việc truyền và nhận dữ liệu nối tiếp. Trong giao tiếp nối tiếp, dữ liệu được truyền từng bit bằng cách sử dụng một đường dây. Trong giao tiếp hai chiều, chúng ta sử dụng hai dây để truyền dữ liệu nối tiếp thành công.

UART là một giao thức truyền thông phần cứng sử dụng giao tiếp nối tiếp khơng đồng bộ với tốc độ có thể định cấu hình. Khơng đồng bộ có nghĩa là khơng có tín hiệu đồng hồ để đồng bộ hóa các bit đầu ra từ thiết bị truyền đi đến bên nhận.

Trong giao tiếp UART, hai UART giao tiếp trực tiếp với nhau. UART truyền chuyển đổi dữ liệu song song từ một thiết bị điều khiển như CPU thành dạng nối tiếp, truyền nó nối tiếp đến UART nhận, sau đó chuyển đổi dữ liệu nối tiếp trở lại thành dữ liệu song song cho thiết bị nhận.

Hai đường dây mà mỗi thiết bị UART sử dụng để truyền dữ liệu đó là:

• Transmitter (Tx)

• Receiver (Rx)

UART truyền dữ liệu khơng đồng bộ, có nghĩa là khơng có tín hiệu đồng hồ để đồng bộ hóa đầu ra của các bit từ UART truyền đến việc lấy mẫu các bit bởi UART nhận. Thay vì tín hiệu đồng hồ, UART truyền thêm các bit start và stop vào gói dữ liệu được chuyển. Các bit này xác định điểm bắt đầu và điểm kết thúc của gói dữ liệu để UART nhận biết khi nào bắt đầu đọc các bit.

Khi UART nhận phát hiện một bit start, nó bắt đầu đọc các bit đến ở một tần số cụ thể được gọi là tốc độ truyền (baud rate). Tốc độ truyền là thước đo tốc độ truyền dữ liệu, được biểu thị bằng bit trên giây (bps – bit per second). Cả hai UART đều phải hoạt động ở cùng một tốc độ truyền. Tốc độ truyền giữa UART truyền và nhận chỉ có thể chênh lệch khoảng 10% trước khi thời gian của các bit bị lệch quá xa. b) Cách thức hoạt động của giao tiếp UART

UART sẽ truyền dữ liệu nhận được từ một bus dữ liệu (Data Bus). Bus dữ liệu được sử dụng để gửi dữ liệu đến UART bởi một thiết bị khác như CPU, bộ nhớ hoặc vi điều khiển. Dữ liệu được chuyển từ bus dữ liệu đến UART truyền ở dạng song song. Sau khi UART truyền nhận dữ liệu song song từ bus dữ liệu, nó sẽ thêm một bit start, một bit chẵn lẻ và một bit stop, tạo ra gói dữ liệu. Tiếp theo, gói dữ liệu được

xuất ra nối tiếp từng bit tại chân Tx. UART nhận đọc gói dữ liệu từng bit tại chân Rx của nó.UART nhận sau đó chuyển đổi dữ liệu trở lại dạng song song và loại bỏ bit start, bit chẵn lẻ và bit stop. Cuối cùng, UART nhận chuyển gói dữ liệu song song với bus dữ liệu ở đầu nhận.

Dữ liệu truyền qua UART được tập hợp thành gói (packet). Mỗi gói chứa 1 bit start, 5 đến 9 bit dữ liệu (tùy thuộc vào UART), một bit chẵn lẻ (parity bit) tùy chọn và 1 hoặc 2 bit stop.

Start bit (Bit bắt đầu)

Đường truyền dữ liệu UART thường được giữ ở mức điện áp cao khi nó khơng truyền dữ liệu. Để bắt đầu truyền dữ liệu, UART truyền sẽ kéo đường truyền từ mức cao xuống mức thấp trong một chu kỳ đồng hồ. Khi UART nhận phát hiện sự chuyển

Hình 4. 2: Phương thức truyền dữ liệu của 2 thiết bị

Hình 4. 3: Dữ liệu được tập hợp thành gói

đổi điện áp cao xuống thấp, nó bắt đầu đọc các bit trong khung dữ liệu ở tần số của tốc độ truyền.

Data frame (Khung dữ liệu)

Khung dữ liệu chứa dữ liệu thực tế đang được truyền. Nó có thể dài từ 5 bit đến 8 bit nếu sử dụng bit chẵn lẻ. Nếu không sử dụng bit chẵn lẻ, khung dữ liệu có thể dài 9 bit. Trong hầu hết các trường hợp, dữ liệu được truyền với bit có trọng số bé nhất (LSB) trước tiên.

Parity Bit (Bít chẵn lẻ)

Tính chẵn lẻ mơ tả tính chẵn hoặc lẻ của một số. Bit chẵn lẻ là một cách để UART nhận cho biết liệu có bất kỳ dữ liệu nào đã thay đổi trong quá trình truyền hay khơng. Bit có thể bị thay đổi bởi bức xạ điện từ, tốc độ truyền không khớp hoặc truyền dữ liệu đường dài.

Sau khi UART nhận đọc khung dữ liệu, nó sẽ đếm số bit có giá trị là 1 và kiểm tra xem tổng số là số chẵn hay lẻ. Nếu bit parity là 0 (even parity – parity chẵn), thì tổng số bit 1 trong khung dữ liệu phải luôn là một số chẵn. Nếu bit parity là 1 (odd parity – parity lẻ) thì số tổng bit 1 trong khung dữ liệu là một số lẻ.

Khi bit chẵn lẻ khớp với dữ liệu, UART biết rằng q trình truyền khơng có lỗi. Nhưng nếu bit chẵn lẻ là 0 và tổng là số lẻ, hoặc bit chẵn lẻ là 1 và tổng số là chẵn, thì UART biết rằng các bit trong khung dữ liệu đã thay đổi.

Hình 4. 5: Khung dữ liệu của gói dữ liệu UART

Stop Bit ( Bit kết thúc)

Để báo hiệu sự kết thúc của gói dữ liệu, UART gửi sẽ điều khiển đường truyền dữ liệu từ điện áp thấp đến điện áp cao trong ít nhất hai khoảng thời gian bit.

4.1.2 Tổng quan giao thức I2C

a) Giới thiệu giao thức I2C

I2C là một giao thức giao tiếp được phát triển bởi Philips Semiconductors để truyền dữ liệu giữa một bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đường truyền tín hiệu.

Do tính đơn giản của nó nên loại giao thức này được sử dụng rộng rãi cho giao tiếp giữa vi điều khiển và mảng cảm biến, các thiết bị hiển thị, thiết bị Internet of Thing, EEPROMs, v.v …

Đây là một loại giao thức giao tiếp nối tiếp đồng bộ. Nó có nghĩa là các bit dữ liệu được truyền từng bit một theo các khoảng thời gian đều đặn được thiết lập bởi một tín hiệu đồng hồ tham chiếu.

Hình 4. 7: Bit kết thúc của gói dữ liệu UART

Đặc điểm quan trọng của giao thức giao tiếp I2C:

• Chỉ cần có hai đường bus (dây) chung để điều khiển bất kỳ thiết bị / IC nào trên mạng I2C

• Khơng cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp UART. Vì vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần thiết

• Cơ chế đơn giản để xác thực dữ liệu được truyền

• Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị / IC cụ thể trên bus I2C

• Các mạng I2C dễ dàng mở rộng. Các thiết bị mới có thể được kết nối đơn giản với hai đường bus chung I2C

b) Giao thức truyền dữ liệu I2C

Giao thức được tập hợp các quy tắc bởi thiết bị Master và các thiết bị Slave để truyền dữ liệu giữa chúng.

Dữ liệu được truyền giữa thiết bị Master và các thiết bị Slave thông qua một đường dữ liệu SDA duy nhất, thơng qua các chuỗi có cấu trúc gồm các số 0 và 1 (bit). Mỗi chuỗi số 0 và 1 được gọi là giao dịch (transaction) và dữ liệu trong mỗi giao dịch có cấu trúc như sau:

Điều kiện bắt đầu (Start Condition)

Bất cứ khi nào một thiết bị chủ / IC quyết định bắt đầu một giao dịch, nó sẽ chuyển mạch SDA từ mức điện áp cao xuống mức điện áp thấp trước khi đường SCL chuyển từ cao xuống thấp.

Khi điều kiện bắt đầu được gửi bởi thiết bị Master, tất cả các thiết bị Slave đều hoạt động ngay cả khi chúng ở chế độ ngủ (sleep mode) và đợi bit địa chỉ.

Khối địa chỉ

Nó bao gồm 7 bit và được lấp đầy với địa chỉ của thiết bị Slave đến / từ đó thiết bị Master cần gửi / nhận dữ liệu. Tất cả các thiết bị Slave trên bus I2C so sánh các bit địa chỉ này với địa chỉ của chúng.

Bit Read / Write

Bit này xác định hướng truyền dữ liệu. Nếu thiết bị Master / IC cần gửi dữ liệu đến thiết bị Slave, bit này được thiết lập là ‘0’. Nếu IC Master cần nhận dữ liệu từ thiết bị Slave, bit này được thiết lập là ‘1’.

Bit ACK / NACK

ACK / NACK là viết tắt của Acknowledged/Not-Acknowledged. Nếu địa chỉ vật lý của bất kỳ thiết bị Slave nào trùng với địa chỉ được thiết bị Master phát, giá trị của bit này được set là ‘0’ bởi thiết bị Slave. Ngược lại, nó vẫn ở mức logic ‘1’ (mặc định).

Khối dữ liệu

Nó bao gồm 8 bit và chúng được thiết lập bởi bên gửi, với các bit dữ liệu cần truyền tới bên nhận. Khối này được theo sau bởi một bit ACK / NACK và được set thành ‘0’ bởi bên nhận nếu nó nhận thành cơng dữ liệu. Ngược lại, nó vẫn ở mức logic ‘1’.

Sự kết hợp của khối dữ liệu theo sau bởi bit ACK / NACK được lặp lại cho đến q trình truyền dữ liệu được hồn tất.

Điều kiện kết thúc (Stop condition)

Sau khi các khung dữ liệu cần thiết được truyền qua đường SDA, thiết bị Master chuyển đường SDA từ mức điện áp thấp sang mức điện áp cao trước khi đường SCL chuyển từ cao xuống thấp.

4.2 Tổng quan về tin nhắn SMS

SMS là một công nghệ cho phép gửi và nhận tin nhắn giữa các dòng điện thoại với nhau. Dữ liệu có thể được lưu giữ bởi một tin nhắn SMS là rất giới hạn, Một tin nhắn SMS có thể chứa tối đa 140 byte (1120 bit) dữ liệu. Vì vậy, một tin nhắn SMS có thể chứa:

• 160 ký tự nếu như mã hóa ký tự 7 bit được sử dụng.

• 70 ký tự nếu như mã hóa ký tự 16 bit Unicode UCS2 được sử dụng.

Tin nhắn SMS dạng text hỗ trợ nhiều ngơn ngữ khác nhau, nó có thể hoạt động tốt với nhiều ngơn ngữ mà có hỗ trợ mã Unicode, bao gồm cả Arabic, Trung Quốc, Nhật Bản và Hàn Quốc.

Bên cạnh gửi tin nhắn dạng text thf tin nhắn cịn có thẻ mạng dữ liệu dạng binary. Nó cho phép gửi nhạc chng, hình ảnh cùng nhiều tiện ích khác… tới các điện thoại khác.

4.3 Tổng quan công nghệ Bluetooth

4.3.1 Khái niệm về công nghệ Bluetooth

Bluetooth là công nghệ không dây cho phép các thiết bị điện, điện tử giao tiếp với nhau trong khoảng cách ngắn, bằng sóng vơ tuyến qua băng tầng chung ISM(Industrial, Scientific, Medical) trong dãy tầng 2.40 – 2.48Ghz, và có khả năng truyền tải giọng nói và dữ liệu. Phạm vi hoạt động của thiết bị bluetooth khoảng 10m. Bluetooth truyền dữ liệu với tốc độ 1Mbps, nhanh gấp 3 và 8 lần tốc độ trung bình của cổng song song và cổng serial tương ứng. Đây là dãy băng tầng không cần đăng ký hoặc được dành riêng để dùng cho các thiết bị không dây trong công nghiệp, khoa học, y tế.

Bluetooth được thiết kế nhằm mục đích thay thế dây cable giữa máy tính và các thiết bị truyền thơng cá nhân, kết nối vô tuyến giữa các thiết bị điện tử lại với nhau một cách thuận tiện.

Khi được kích hoạt Bluetooth có thể tự động định vị các thiết bị khác có chung cơng nghệ trong vùng xung quanh và bắt đầu kết nối với chúng, nó được định hướng sử dụng cho việc truyền dữ liệu lẫn tiếng nói.

Công nghệ không dây Bluetooth là một tiêu chuẩn trong thực tế, dùng cho các thiết bị cỡ nhỏ, chi phí thấp. Sóng ngắn liên kết giữa PC di động, điện thoại di động và giữa các máy tính với nhau. Bluetooth là một cơng nghệ cho phép truyền thông giữa các thiết bị bới nhau mà không cần cáp và dây dẫn, Bluetooth ít tiêu hao năng lượng và có giá thành thấp mặc dù tốc độ của nó chậm hơn khá nhiều so với mạng không dây Wifi. Apple đã trang bị Bluetooth vào trong máy Mac của mình nhiều năm để kích hoạt khả năng hoạt động với các thiết bị bàn phím và chuột khơng dây hỗ trợ Bluetooth. Đồng bộ hóa dữ liệu với thiết bị di động và thiết bị hỗ trợ cá nhân PDA, in ấn với các máy in có hỗ trợ Bluetooth và kết nối đến các thiết bị khác.

Bluetooth đã phải đối mặt với với cuộc chiến leo thang với các nhà sản xuất PC nhưng ngược lại, công nghệ Bluetooth là “đứa con cưng” của các hãng sản xuất điện thoại di động vì đại đa số các điện thoại di động đều hỗ trợ Bluetooth cũng như các thiết bị headset không dây. Trong tương lai, công nghệ Bluetooth phiên bản mới sẽ tiếp tục phát triển ở nhiều lĩnh vực.

4.3.2 Các đặc điểm Bluetooth

Bluetooth có thể đạt tốc độ truyền dữ liệu 1Mb/s. Bluetooth hỗ trợ tốc độ truyền tải dữ liệu lên đến 720Kpbs trong phạm vi 10m. Khác với kết nối hồng ngoại (IrDA), kết nối Bluetooth là vô hướng và sử dụng dải tần 2.4GHz.

➢ Tiêu thụ năng lượng thấp,cho phép ứng dụng được trong nhiều thiết bị, bao gồm thiết bị cầm tay và điện thoại di động.

➢ Giá thành hạ (giá của một con chip Bluetooth đang giảm dần).

➢ Khoảng cách giao tiếp giữa 2 thiết bị đầu cuối có thể lên đến 10m ngồi trời và 5m trong tịa nhà.

➢ Khoảng cách thiết bị đầu cuối và Access Point có thể lên đến 100m ngoài trời và 30m trong nhà.

Bluetooth sử dụng băng tầng đăng ký 2.4GHz trên dãy băng tầng ISM. Tốc độ truyền dữ liệu có thể lên đến mức tối đa 1Mbps (do sử dụng tần số cao) mà các thiết bị không cần phải lấy trực tiếp nhau.

Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối một ứng dụng này với một ứng dụng khác thơng qua các chuẩn “Bluetooth Profiles” , do đó độc lập về phần cứng cũng như hệ điều hành sử dụng.

Bluetooth được dùng trong giao tiếp dữ liệu tiếng nói: có 3 kênh để truyền tiếng nói và 7 kênh để truyền dữ liệu trong một mạng cá nhân.

4.4 Tông quan App diều khiển thiết bị bằng bluetooth

MIT App Inventor dành cho Android là một ứng dụng web nguồn mở ban đầu được cung cấp bởi Google và hiện tại được duy trì bởi Viện Cơng nghệ Massachusetts (MIT). Nền tảng cho phép nhà lập trình tạo ra các ứng dụng phần mềm cho hệ điều hành Android (OS). Bằng cách sử dụng giao diện đồ họa, nền tảng cho phép người dùng kéo và thả các khối mã (blocks) để tạo ra các ứng dụng có thể chạy trên thiết bị Android. Đến thời điểm hiện tại 07/2017, phiên bản iOS của nền tảng này đã bắt đầu được đưa vào thử nghiệm bởi Thunkable, là một trong các nhà cung cấp ứng dụng web cho ngôn ngữ này.

4.5 Ý tưởng mơ hình

Lên kế hoạch thực hiện mơ hình từ ý tưởng và thực hiện hóa ý tưởng đo đạc chọn vật liệu linh kiện để tiến hành xây dựng lên mơ hình thực tế, ở đây vật liệu để sử dụng làm mơ hình sản phẩm là bìa fomex với ưu điểm dễ tìm kiếm giá thành thấp dễ dàng gia cơng theo kích thước đã đo đạc định hình theo ý muốn.

Hình 4. 15: Lên kế hoạch làm mơ hình

Sau khi xác định được hình dạng của mơ hình sẽ tiến hành thi cơng, đo đạc gia cơng vật liệu theo kích thước xác định được vẽ phác thảo trước trên bề mặt vật liệu đảm bảo độ chính xác cao. Hiện tại mơ hình xây dựng với kích thước dài rộng cao

Một phần của tài liệu Giám sát điện năng sử dụng và điều khiển thiết bị tránh quá tải (Trang 43)

Tải bản đầy đủ (PDF)

(96 trang)