- Start-bit
Start-bit còn được gọi là bit đồng bộ hóa được đặt trước dữ liệu thực tế. Nói chung, một đường truyền dữ liệu không hoạt động được điều khiển ở mức điện áp cao. Để bắt đầu truyền dữ liệu, truyền UART kéo đường dữ liệu từ mức điện áp cao (1) xuống mức điện áp thấp (0). UART thu được thông báo sự chuyển đổi này từ mức cao sang mức thấp qua đường dữ liệu cũng như bắt đầu hiểu dữ liệu thực. Nói chung, chỉ có một start-bit.
Bit dừng được đặt ở phần cuối của gói dữ liệu. Thông thường, bit này dài 2 bit nhưng thường chỉ sử dụng 1 bit. Để dừng sóng, UART giữ đường dữ liệu ở mức điện áp cao. - Bit chẵn lẻ
Bit chẵn lẻ cho phép người nhận đảm bảo liệu dữ liệu được thu thập có đúng hay không. Đây là một hệ thống kiểm tra lỗi cấp thấp & bit chẵn lẻ có sẵn trong hai phạm vi như Chẵn lẻ – chẵn lẻ cũng như Chẵn lẻ – lẻ. Trên thực tế, bit này không được sử dụng rộng rãi nên không bắt buộc.
- Dữ liệu bit hoặc khung dữ liệu
Các bit dữ liệu bao gồm dữ liệu thực được truyền từ người gửi đến người nhận. Độ dài khung dữ liệu có thể nằm trong khoảng 5 & 8. Nếu bit chẵn lẻ không được sử dụng thì chiều dài khung dữ liệu có thể dài 9 bit. Nói chung, LSB của dữ liệu được truyền trước tiên sau đó nó rất hữu ích cho việc truyền.
QUY LUẬT KHI SỬ DỤNG UART
Như đã đề cập lúc đầu, giao tiếp UART không cần sử dụng tín hiệu clock để đồng bộ dữ liệu. Tuy nhiên có một số quy luật cần phải tuân thủ để tránh các lỗi trong quá trình truyền nhận dữ liệu qua UART. Các quy luật này bao gồm:
• Bits đồng bộ (Start and Stop bits) • Parity Bit
• Data Bits
Chúng ta đã tìm hiểu các bits đồng bộ và parity bit and data bits. Tuy nhiên, có 1 yếu tố quan trọng trong quá trình truyền nhận dữ liệu UART là Baud Rate.
Baud Rate: là tốc độ dùng để truyền và nhận dữ liệu. Cả thiết bị truyền và thiết bị nhận cần giao tiếp trên cùng 1 tốc độ để quá trình truyền nhận được hoàn thành.
Baud Rate được đo bởi số bit / giây ( bits per second ). Một số baud rates tiêu chuẩn là: 4800 bps, 9600 bps, 19200 bps, 115200 bps, …. Trong đó, tốc độ 9600 bps là tốc độ thường được sử dụng nhiều nhất.
- ƯU ĐIỂM CỦA UART
• Chỉ cần 2 dây để truyền nhận song song dữ liệu
• Không cần tín hiệu clock hay bất kỳ tín hiệu đồng bộ nào khác
• Parity bit đảm bảo dữ liệu được truyền đi chính xác
- NHƯỢC ĐIỂM CỦA UART
• Kích thước gói dữ liệu bị giới hạn
• Tốc độ truyền chậm hơn khi so sánh với kiểu truyền dữ liệu song song
• Thiết bị truyền và thiết bị nhận cần phải đồng nhất một số thông số với nhau
2.6.3 Giao tiếp I2C
Khái niệm giao tiếp I2C
I2C ( Inter – Integrated Circuit) là 1 giao thức giao tiếp nối tiếp đồng bộ được phát triển bởi Philips Semiconductors, sử dụng để truyền nhận dữ liệu giữa các IC với nhau chỉ sử dụng hai đường
Các bit dữ liệu sẽ đượ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 1 tín hiệu đồng hồ.
Bus I2C thường được sử dụng để giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại vi điều khiển, cảm biến, EEPROM, … .
Hình 2. 30 I2C
Cách thức hoạt động của giao tiếp I2C Cấu tạo :
I2C sử dụng 2 đường truyền tín hiệu:
o SCL - Serial Clock Line : Tạo xung nhịp đồng hồ do Master phát đi o SDA - Serial Data Line : Đường truyền nhận dữ liệu.
Giao tiếp I2C bao gồm quá trình truyền nhận dữ liệu giữa các thiết bị chủ tớ, hay Master - Slave.
Thiết bị Master là 1 vi điều khiển, nó có nhiệm vụ điều khiển đường tín hiệu SCL và gửi nhận dữ liệu hay lệnh thông qua đường SDA đến các thiết bị khác.
Các thiết bị nhận các dữ liệu lệnh và tín hiệu từ thiết bị Master được gọi là các thiết bị Slave. Các thiết bị Slave thường là các IC, hoặc thậm chí là vi điều khiển.
Master và Slave được kết nối với nhau như hình trên. Hai đường bus SCL và SDA đều hoạt động ở chế độ Open Drain, nghĩa là bất cứ thiết bị nào kết nối với mạng I2C này cũng chỉ có thể kéo 2 đường bus này xuống mức thấp (LOW), nhưng lại không thể kéo được lên mức cao. Vì để tránh trường hợp bus vừa bị 1 thiết bị kéo lên mức cao vừa bị 1 thiết bị khác kéo xuống mức thấp gây hiện tượng ngắn mạch. Do đó cần có 1 điện trờ ( từ 1 – 4,7 kΩ) để giữ mặc định ở mức cao.
- Khung truyền I2C :
Hình 2. 32 Khung truyền I2C
Khối bit địa chỉ :
Thông thường quá trình truyền nhận sẽ diễn ra với rất nhiều thiết bị, IC với nhau. Do đó để phân biệt các thiết bị này, chúng sẽ được gắn 1 địa chỉ vật lý 7 bit cố định.
Hình 2. 33 địa chỉ trong I2C
Bit Read/Write:
Bit này dùng để xác định quá trình là truyền hay nhận dữ liệu từ thiết bị Master. Nếu Master gửi dữ liệu đi thì ứng với bit này bằng ‘0’, và ngược lại, nhận dữ liệu khi bit này bằng ‘1’.
Bit ACK/NACK:
Viết tắt của Acknowledged / Not Acknowledged. Dùng để so sánh bit địa chỉ vật lý của thiết bị so với địa chỉ được gửi tới. Nếu trùng thì Slave sẽ được đặt bằng ‘0’ và ngược lại, nếu không thì mặc định bằng ‘1’
Khối bit dữ liệu:
Gồm 8 bit và được thiết lập bởi thiết bị gửi truyền đến thiết bị nhân. Sau khi các bit này được gửi đi, lập tức 1 bit ACK/NACK được gửi ngay theo sau để xác nhận rằng thiết bị nhận đã nhận được dữ liệu thành công hay chưa. Nếu nhận thành công thì bit ACK/NACK được set bằng ‘0’ và ngược lại.
- Quá trình truyền nhận dữ liệu:
Bắt đầu: Thiết bị Master sẽ gửi đi 1 xung Start bằng cách kéo lần lượt các đường SDA, SCL từ mức 1 xuống 0.
Hình 2. 34 Quá trình truyền nhận dữ liệu
Tiếp theo đó, Master gửi đi 7 bit địa chỉ tới Slave muốn giao tiếp cùng với bit Read/Write.
Slave sẽ so sánh địa chỉ vật lý với địa chỉ vừa được gửi tới. Nếu trùng khớp, Slave sẽ xác nhận bằng cách kéo đường SDA xuống 0 và set bit ACK/NACK bằng ‘0’. Nếu không trùng khớp thì SDA và bit
ACK/NACK đều mặc định bằng ‘1’.
Thiết bị Master sẽ gửi hoặc nhận khung bit dữ liệu. Nếu Master gửi đến Slave thì bit Read/Write ở mức 0. Ngược lại nếu nhận thì bit này ở mức 1.
Nếu như khung dữ liệu đã được truyền đi thành công, bit ACK/NACK được set thành mức 0 để báo hiệu cho Master tiếp tục.
Sau khi tất cả dữ liệu đã được gửi đến Slave thành công, Master sẽ phát 1 tín hiệu Stop để báo cho các Slave biết quá trình truyền đã kết thúc bằng các chuyển lần lượt SCL, SDA từ mức 0 lên mức 1.
- Các chế độ hoạt động của I2C:
Chế độ chuẩn (standard mode) với tốc độ 100 kBit/s. Chế độ tốc độ thấp (low speed mode) với tốc độ 10 kBit/s.
Ngoài ra, khác với giao tiếp SPI chỉ có thể có 1 Master, giao tiếp I2C cho phép chế độ truyền nhận dữ liệu giữa nhiều thiết bị Master khác nhau với thiết bị Slave. Tuy nhiên quá trình này có hơi phức tạp vì thiết bị Slave có thể nhận
1 lúc nhiều khung dữ liệu từ các thiết bị Master khác nhau, điều đó đôi khi dẫn đến xung đột hoặc sai sót dữ liệu nhận được.
Để tránh điều đó, khi làm việc ở chế độ này, mỗi thiết bị Master cần phát hiện xem đường SDA đang ở trạng thái nào.
Nếu SDA ở mức 0, nghĩa là đang có 1 thiết bị Master khác đang có quyền điều khiển và phải chờ đến khi truyền xong.
Ngược lại nếu SDA ở mức 1, nghĩa là đường truyền SDA đã an toàn và có sử dụng.
Kết luận chương
Trong chương 2 đã trình bày về các phần mềm, linh kiện được sử dụng trong hệ thống. Giới thiệu được cấu tạo, thông số kĩ thuật và nguyên lí hoạt động của vi điều khiển STM32F103C8T6, cũng như các linh kiện điện tử khác (Module Sim 800L, Module GPS Neo 06, cảm biến rung SW 420, cảm biến,..) . Bên cạnh đó chương 2 cũng đã nêu ra một số giao tiếp cơ bản sử dụng để giao tiếp giữa vi điều khiển và ngoại vi. Qua đó ta có cái nhìn khái quát để từ đó có thể thiết kế mạch nguyên lí, mạch in …
CHƯƠNG 3. THIẾT KẾ MÔ HÌNH CẢNH BÁO CHỐNG TRỘM XE MÁY
3.1.Sơ đồ khối của hệ thống
3.1.1.Yêu cầu kỹ thuật của hệ thống
Thiết bị chống trộm xe máy cần đáp ứng nhu cầu sử dụng như sau: -Chống trộm xe máy,báo khi phát hiện có trộm.
-Phát hiện trộm báo về điện thoại sử dụng SMS và gọi điện thoại. --Gửi tọa độ xe máy đang ở vị trí nào.
3.1.2.Sơ đồ khối của hệ thống
Khối nguồn Vi điều khiển STM32F103C8T6 Module Sim800 Còi báo Điện thoại Vệ tinh Cảm biến rung Module GPS
Nguyên lý hoạt động:
Khi khối nguồn cấp điện áp 5 VDC vào vi điều khiển và Module Sim800 thì vi điều khiển sẽ ra lệnh yêu cầu Module Sim808 thiết lập kết nối GPS và kết nối GSM.
Khi có tin nhắn từ điện thoại di động gửi đến Module Sim800 thì vi điều khiển sẽ tiến hành kiểm tra xem tin nhắn vừa nhận có được gửi từ số điện thoại của chủ xe đã được thiết lập để nhắn tin trước đó hay không.
Nếu sau khi kiểm tra thấy đúng số điện thoại đã thiết lập thì vi điều khiển sẽ thực hiện theo yêu đúng yêu cầu của nội dung tin nhắn đã gửi đến. Nếu không đúng số điện thoại thì vi điều khiển sẽ bỏ qua tin nhắn đó.
Khi xe máy bị tác động mở khóa nguồn xe, mạch chống trộm sẽ gửi một tin nhắn đến số điện thoại của chủ xe để thông báo rằng xe vừa bị mở khóa. Trong trường hợp là chủ xe mở khóa thì có thể bỏ qua tin nhắn này, nếu không phải là chủ xe mở khóa thì chủ xe có thể nhắn tin yêu cầu bất còi hú và tắt nguồn xe. Khi mạch chống trộm nhận được tin nhắn thì vi điều khiển sẽ xử lý tin nhắn và bật còi báo động đồng thời tắt luôn nguồn xe máy.
Trong trường hợp vì một lý do nào đó mà chủ xe đọc được tin nhắn quá trễ sau khi xe bị tác động mở khóa thì chủ xe có thể dùng chức năng định vị của Module Sim800 để định vị được vị trí xe máy của mình hiện tại đang ở đâu bằng cách nhắn tin yêu cầu mạch chống trộm gửi thông tin tọa độ của xe.
Ngoài ra chức năng còi hú của xe cũng có thể dùng để tìm vị trí của xe khi đỗ xe trong bãi xe quá lớn và chủ xe không nhớ mình đỗ xe ở vị trí nào.
3.2.Chức năng của các khối 3.2.1. Khối nguồn
Nguồn cấp vào 5V, nguồn cấp vào Kit bluepill là 5V. Nguồn nuôi vi điều khiển là 3.3V. Nguồn cấp vào Module Sim là 4.2V, nguồn nuôi Module GPS là 5V.
Ta sử dụng Adapter 5V để cấp nguồn cho hệ thống, riêng với module sim ta sử dụng diode để gây hiện tượng sụt áp xuống xấp xỉ 4.2V để cấp nguồn cho module sim.
Hình 3. 2 Khối nguồn
3.2.2.Khối vi điều khiển
Khối vi điều khiển lấy giao tiếp với khối cảm biến, Module Sim và GPS để xử lý tín hiệu đầu vào và đưa gia lệnh thực hiện gọi điện, nhắn tin, báo động bằng còi.
3.2.3.Khối Module GPS
Module GPS để lấy giá trị tọa độ trả lại cho vi điều khiển.
Hình 3. 4 Khối Module GPS
3.2.4.Khối Module Sim
Module Sim có chức năng gọi điện, nhắn tin cảnh báo và có chức năng trả lại nội dung tin nhắn khi có tin nhắn đến sim về vi điều khiển.
Để cấp cho Module Sim là 4.2V thì mắc 2 con điot có chức năng bảo vệ chống ngược và giảm áp từ 5V xuống 4.2V do khi qua diot điện áp sẽ bị sụt áp dùng 2 con diot mắc nối tiếp như trên thì điện áp từ 5V sẽ bị giảm xuống khoảng 4.2V phù hợp với điện áp cấp cho Module Sim
3.2.5.Khối cảm biến rung
Cảm biến có chức năng phát hiện rung và trả lại tín hiệu cho vi điều khiển.
Hình 3. 6 Khối cảm biến rung
3.2.6. Khối Buzzer
Nhận tín hiệu từ vi điều khiển để phát ra các cảnh báo.
3.2.8.Sơ đồ toàn bộ hệ thống
Hình 3. 8 Sơ đồ toàn bộ hệ thống
3.3.Sơ đồ mạch in
3.3.1 Phần mềm ALTIUM
Altium Designer trước kia có tên gọi quen thuộc là Protel DXP, là một trong những công cụ vẽ mạch điện tử mạnh nhất hiện nay. Được phát triển bởi hãng Altium Limited. Altium designer là một phần mềm chuyên nghành được sử dụng trong thiết kế mạch điện tử
Hình 3. 9 Altium designer
Đặc điểm:
Giao diện thiết kế, quản lý và chỉnh sửa thân thiện, dễ dàng biên dịch, quản lý file, quản lý phiên bản cho các tài liệu thiết kế. Hỗ trợ mạnh mẽ cho việc thiết kế tự động, đi dây tự động theo
thuật toán tối ưu, phân tích lắp ráp linh kiện. Hỗ trợ việc tìm các giải pháp thiết kế hoặc chỉnh sửa mạch, linh kiện, netlist có sẵn từ trước theo các tham số mới.
Mở, xem và in các file thiết kế mạch dễ dàng với đầy đủ các thông tin linh kiện, netlist, dữ liệu bản vẽ, kích thước, số lượng…
Hệ thống các thư viện linh kiện phong phú, chi tiết và hoàn chỉnh bao gồm tất cả các linh kiện nhúng, số, tương tự…
Đặt và sửa đối tượng trên các lớp cơ khí, định nghĩa các luật thiết kế, tùy chỉnh các lớp mạch in, chuyển từ schematic sang PCB, đặt vị trí linh kiện trên PCB.
Mô phỏng mạch PCB 3D, đem lại hình ảnh mạch điện trung thực trong không gian 3 chiều, hỗ trợ MCAD-ECAD, liên kết trực tiếp với mô hình STEP, kiểm tra khoảng cách cách điện, cấu hình cho
Hỗ trợ thiết kế PCB sang FPGA và ngược lại.
Việc thiết kế mạch điện tử trên phần mềm altium designer có thể được tóm tắt gồm các bước như sau:
- Đặt ra các yêu cầu bài toán. - Lựa chọn linh kiện.
- Thiết kế mạch nguyên lý.
- Lựa chọn các chân linh kiện để chuyển sang mạch in Update mạch nguyên lý sang mạch in.
- Lựa chọn kích thước mạch in Sắp sếp các vị trí các loại linh kiện như điện trở , tụ điện, IC...
- Đặt kích thước các loại dây nối. - Đi dây trên mạch.
3.3.2.Mạch in trên phần mềm
Hình 3. 10 Mạch in 2D
3.3.3.Lắp ráp, kiểm tra và thi công mô hình
Hình 3. 12 Mạch thực tế
3.4 Thiết kế phần mềm 3.4.1.Yêu cầu phần mềm
Sản phẩm hoạt động theo 2 chế độ là tự động:
Khi nút nhấn tắt: hệ thống sẽ không thể nhắn tin, gọi điện hay còi báo động cũng sẽ không hoạt động.
Khi nút khởi động bật:
+ Còi sẽ kêu báo hiệu khởi động, 1 tin nhắn Hệ thống khởi động sẽ được gửi. Khi gửi xong còi sẽ ngừng kêu.
+ Khi cảm biến có tác động, nếu trong vòng 1 phút: nhận được 20 tín hiệu từ cảm biến thì sẽ có tin nhắn có tác động gửi về và còi kêu 5s , nhận được 20 tín hiệu tiếp theo thì sẽ gọi điện báo về máy, còi kêu 3s.
+ Khi có tin nhắn toado gui về hệ thống: trong vòng 60s nếu gps lấy được sẽ gửi tin nhắn nội dung tọa độ, không lấy được sẽ gửi nội dung là