Professional Documents
Culture Documents
hình 18.8 trình bày sơ đồ cấu tạo của các gia tốc kế áp điện kiểu nén.
1) Khối lượng rung 2) Phiến áp điện 3) Đai ốc 4) Đế 5) Vỏ hộp
Cảm biến loại này có tần số cộng hưởng cao, kết cấu chắc chắn, nhạy với ứng lực của đế.
Sơ đồ cấu tạo của gia tốc kế kiểu uốn cong trình bày trên hình 18.9.
Phần tử áp điện của cảm biến gồm hai phiến áp điện mỏng dán với nhau, một đầu gắn cố
định lên vỏ hộp cảm biến, một đầu gắn với khối lượng rung. Cảm biến loại này cho độ nhạy rất
cao nhưng tần số và gia tốc rung đo được bị hạn chế.
Hình 18.9: Sơ đồ cấu tạo gia tốc kế áp điện kiểu uốn cong
1) Khối lượng rung 2) Phiến áp điện 3) Vỏ hộp
1.3.3.Cảm biến gia tốc kiểu áp điện trở
Cảm biến gia tốc áp điện trở ba chiều (hình 1) với kích thước nhỏ 1.5×1.5×0.5 mm3 đã
được chế tạo. Hiệu ứng áp điện trở đã được ứng dụng để xác định các gia tốc tác động vào cảm
biến. Hiện tượng thay đổi điện trở của vật liệu tinh thể dưới tác dụng của ứng suất cơ được gọi
là hiệu ứng áp điện trở [6, 7]. Nguyên nhân đó là đặc tính dị hướng của độ phân giải mức năng
lượng trong không gian tinh thể. Trong silíc chỉ tồn tại ba hệ số áp điện trở không phụ thuộc vào
nhau là (liên hệ dọc), (liên hệ ngang) và (cho liên hệ trượt). Đối với silíc đơn tinh thể có mật độ
tạp dẫn thấp thì có thể coi những hệ số áp điện trở , và là các hằng số. Người ta ứng dụng vật
liệu biến dạng cơ là màng mỏng hay cấu trúc thanh dầm. Để đạt được độ dãn ngang (chiều dài
và chiều rộng) lớn thì cần chiều dày nhỏ và do vậy có thể bỏ qua ứng suất dọc. Lúc này phần tử
áp điện trở được cấy trên vật biến dạng cơ và mạch điện xử lý bên ngoài được thiết kế một cách
thích ứng.
Trong các cảm biến gia tốc áp điện trở thì độ dịch chuyển của khối gia trọng sẽ làm thanh
dầm biến dạng. Điện trở được cấy trên các thanh dầm sẽ biến đổi tỷ lệ thuận với gia tốc tác dụng
lên khối gia trọng. Các cảm biến loại này thường được chế tạo theo công nghệ vi cơ khối 2 mặt.
Cấu trúc thanh dầm và khối gia trọng sẽ được tạo hình bằng ăn mòn nhiều bước. Việc cấy tạp
chất nồng độ cao sẽ tạo ra áp điện trở trên cấu trúc thanh dầm treo vật nặng.
Hình 2. Độ dịch chuyển của cấu trúc khi tác dụng các gia tốc tuyến tính
Khi cảm biến chịu tác dụng của gia tốc tịnh tiến theo phương Z (hình 2.a) thì khối gia trọng
sẽ chuyển động lên hoặc xuống.
Khi cảm biến chịu tác dụng của gia tốc tịnh tiến theo phương ngang (hình 2.b) thì khối gia
trọng bị lệch theo X hoặc Y. Độ lệch của thanh dầm khi chịu gia tốc tác dụng sẽ gây nên ứng
suất tuyến tính. Sự thay đổi điện trở sẽ được biến đổi thành tín hiệu điện nhờ sử dụng mạch điện
xử lý bên ngoài là các mạch cầu Wheaston. Trong thiết kế này, 12 áp điện trở đã được cấy trên 4
thanh dầm.
Ngôn ngữ lập trình ANSYS đóng vai trò quyết định trong việc xây dựng cấu trúc cũng như
vị trí cấy các áp điện trở [13]. Chương trình thiết kế mask L-EDIT đã được sử dụng để thiết kế
các mặt nạ phục vụ cho việc chế tạo (hình 3).
Cảm biến được chế tạo thành công sử dụng công nghệ vi cơ khối. Hình 4.a và 4.b là ảnh
chup cảm biến sau quá trình bonding và được gắn vào mạch PCB phục vụ cho quá trình đo
chuẩn và áp dụng.
Hình 4.a
Hình 4.b
2. Tìm hiểu giao thức kết nối các cảm biến gia tốc với vi điều khiển (Arduino, atmega, …)
2.1. Khái niệm giao thức kết nối
Khái niệm: Giao thức kết nối (Communication Protocol gọi tắt là Protocol) hay còn được
dịch là giao thức giao tiếp, giao thức tương tác, giao thức truyền thông hay giao thức trao đổi
thông tin, là một tập hợp các quy tắc chuẩn cho phép hai hoặc nhiều thực thể trong một hệ thống
thông tin liên lạc để trao đổi thông tin, dữ liệu qua các kênh truyền thông.
Dẫn: Giao thức truyền thông đóng một vai trò quan trọng trong việc tổ chức giao tiếp
giữa các thiết bị. Nó được thiết kế theo nhiều cách khác nhau dựa trên các yêu cầu của hệ thống
và các giao thức này có một quy tắc cụ thể được thống nhất giữa các thiết bị để việc truyền dữ
liệu được thực hiện thành công.
2.2. Giới thiệu về các loại giao thức kết nối cảm biến gia tốc với vi điều khiển
2.2.1.Giao thức kết nối SPI
2.2.1.1. Giới thiệu về giao thức kết nối SPI
SPI (Serial Peripheral Interface) hay Giao tiếp Ngoại vi Nối tiếp, phát triển bởi
Motorola vào giữa những năm 1980, là một chuẩn truyền thông nối tiếp đồng bộ được sử
dụng để truyền dữ liệu ở chế độ song công toàn phần trong khoảng cách ngắn.
* truyền thông nối tiếp (serial communication): quá trình gửi dữ liệu tuần tự theo
từng bit, qua một kênh truyền thông hoặc bus, trái ngược với truyền thông song
song (parallel communication) trong đó một số bit được gửi toàn bộ và cùng lúc,
trên một đường truyền hoặc liên kết (link hoặc communication link) gồm nhiều
kênh song song.
* đồng bộ: giao tiếp đồng bộ hay truyền đồng bộ là một trong hai loại truyền thông
nối tiếp trong đó bất cứ quá trình gửi và nhận giữa Master-Slave cũng đếu được
đồng bộ hóa bởi một tín hiệu đồng hồ chuyên dụng (xung clock) sinh ra bởi thiết bị
phát dữ liệu (Master) để giúp cho thiết bị thu dữ liệu tìm kiếm dữ liệu trên bus.
*song công toàn phần: hay gọi là " full – duplex ". Nghĩa là tại 1 thời điểm có thể
xảy ra đồng thời quá trình truyền và nhận.
Giao tiếp ngoại vi nối tiếp (SPI) là một loại giao thức kiểu Master – Slave cung
cấp một giao diện chi phí đơn giản và chi phí thấp giữa vi điều khiển và các thiết bị ngoại
vi của nó.
Điều làm cho SPI trở nên phổ biến trong các giao thức truyền thông đồng bộ nối
tiếp khác (hoặc bất kỳ giao tiếp nối tiếp nào) là nó cung cấp tốc độ truyền dữ liệu bảo mật
cao với phần cứng khá đơn giản giống như thanh ghi dịch với chi phí tương đối thấp.
2.2.1.2. Phân tích giao thức SPI
Dẫn: SPI hoặc giao tiếp ngoại vi nối tiếp được Motorola phát triển vào những
năm 1980 như một giao diện tiêu chuẩn, chi phí thấp và đáng tin cậy giữa vi điều
khiển (Vi điều khiển của Motorola lúc đầu) và các IC ngoại vi của nó. Nhờ giao
diện đơn giản, linh hoạt và dễ sử dụng, SPI đã trở thành một tiêu chuẩn và các nhà
sản xuất bán dẫn khác bắt đầu sử dụng giao thức này trong các chip của mình.
Trong giao thức SPI, các thiết bị được kết nối trong một mối quan hệ Master –
Slave trong một giao diện đa điểm (node). Trong loại giao diện này, một thiết bị
được coi là Master của bus (thường là một vi điều khiển) và tất cả các thiết bị khác
(IC ngoại vi hoặc thậm chí các vi điều khiển khác) đều được coi là Slave. Trong
giao thức SPI, có thể chỉ có một thiết bị Master nhưng nhiều thiết bị Slave.
Bởi vì bus SPI được thực hiện bằng cách sử dụng 4 tín hiệu hay 4 dây nên đôi khi
nó được gọi là chuẩn giao tiếp 4 dây (four-wire). Đầu tiên chúng ta hãy xem một
giao diện đơn giản giữa một Master và một Slave được kết nối bằng giao thức SPI
và sau đó chúng ta sẽ tìm hiểu về 4 dây này.
Hình ảnh sau mô tả một thiết bị Master (Bộ xử lý) được kết nối với thiết bị Slave
(Ngoại vi) sử dụng bus SPI.
Master – Out / Slave – In hay MOSI, như tên cho thấy, là dữ liệu được tạo ra
bởi Master và nhận bởi Slave. Do đó, các chân MOSI trên cả Master và Slave được
kết nối với nhau.
Master – In / Slave – Out hay MISO là dữ liệu được tạo ra bởi Slave và phải
được truyền tới Master. Các chân MISO trên cả Master và Slave được kết nối với
nhau. Mặc dù tín hiệu trong MISO được tạo ra bởi Slave, đường tín hiệu này được
điều khiển bởi Master.
Serial Clock hay CK là thiết bị mà Master dùng tạo xung clock tín hiệu và cung
cấp cho Slave. Xung này có chức năng giữ nhịp cho giao tiếp SPI, vì SPI là chuẩn
truyền đồng bộ nên cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo 1 bit dữ
liệu đến hoặc đi. Sự tồn tại của xung SCK giúp quá trình tuyền ít bị lỗi và vì thế tốc
độ truyền của SPI có thể đạt rất cao.
Chip Select (CS) hoặc Slave Select (SS) được sử dụng để chọn một Slave cụ thể
bởi Master. Nếu Master kéo đường SS của một Slave nào đó xuống mức thấp thì
việc giao tiếp sẽ xảy ra giữa Master và Slave đó.
2.2.1.3. Yêu cầu phần cứng SPI
Yêu cầu phần cứng để thực hiện SPI rất đơn giản. Xem xét một Master và một
Slave đơn được kết nối bằng bus SPI.
Từ hình ảnh trên cho thấy thiết bị Master bao gồm một thanh ghi dịch (Shift
Register), một mạch chốt dữ liệu (Latch) và một bộ tạo xung nhịp (Clock
Generator). Thiết bị Slave bao gồm phần cứng tương tự: một thanh ghi dịch (Shift
Register) và một mạch chốt dữ liệu (Latch). Cả hai thanh ghi dịch được kết nối để
tạo thành một vòng. Thông thường, kích thước của thanh ghi là 8 – bit nhưng thanh
ghi kích thước lớn hơn 16 bit cũng rất phổ biến.
2.2.1.4. Nguyên tắc hoạt động của giao thức SPI
Như đã nói ở phần trước xung clock đồng hồ được tạo ra bởi Master nên
luồng dữ liệu được điều khiển bởi Master. Với mỗi chu kỳ đồng hồ, một
bit dữ liệu được truyền từ Master đến Slave và một bit dữ liệu được
truyền từ Slave đến Master.
Quá trình này xảy ra đồng thời và sau 8 chu kỳ đồng hồ, một byte dữ liệu
được truyền theo cả hai hướng và do đó, SPI là một giao tiếp song công
toàn phần (full – duplex).
Quá trình trao đổi dữ liệu bắt đầu khi Master tạo 1 xung clock từ bộ tạo
xung nhịp (Clock Generator) và kéo đường SS của Slave mà nó truyền
dữ liệu xuống mức Low.
Cứ 1 xung clock, Master sẽ gửi đi 1bit từ thanh ghi dịch (Shift Register)
của nó đến thanh ghi dịch của Slave thông qua đường MOSI. Đồng thời
Slave cũng gửi lại 1 bit đến cho Master qua đường MISO.Như vậy sau 8
chu kỳ clock thì hoàn tất việc truyền và nhận 1 byte dữ liệu.
Lưu ý: mặc dù nhiều Slave được kết nối với Master trong bus SPI, ở một thời
điểm bất kỳ thì chỉ có một Slave hoạt động. Để chọn Slave, Master sẽ kéo đường
SS (Slave Select) hoặc CS (Chip Select) của Slave tương ứng xuống tích cực mức
thấp. Do đó, phải có một chân CS riêng trên Master tương ứng với từng thiết bị
Slave.
2.2.1.5. Chế độ hoạt động của SPI
Chúng ta đã thấy rằng công việc của thiết bị Master là tạo ra tín hiệu đồng hồ và
phân phối nó tới Slave để đồng bộ dữ liệu giữa Master và Slave. Công việc của
Master không chỉ dừng lại ở việc tạo tín hiệu đồng hồ ở tần số cụ thể.
Trong thực tế, Master và Slave phải đồng ý về các giao thức đồng bộ hóa nhất
định. Đối với điều này, hai đặc điểm của xung đồng hồ là cực tính đồng hồ (Clock
Polarity – CPOL hoặc CKP) và pha đồng hồ (Clock Phase – CPHA) được đưa vào
để xem xét.
Clock Polarity (CPOL hoặc CKP) xác định trạng thái của đồng hồ. Khi
CPOL ở mức thấp, xung đồng hồ được tạo bởi Master tức là SCK sẽ ở
mức thấp khi nhàn rỗi (idle) và chuyển sang mức cao trong trạng thái
hoạt động (trong khi truyền dữ liệu). Tương tự, khi CPOL ở mức cao,
SCK ở mức cao khi nhàn rỗi và chuyển sang mức thấp trong trạng thái
hoạt động.
Phase Clock (CPHA) xác định quá trình chuyển đổi trạng thái của xung
đồng hồ tức là lên (thấp lên cao) hoặc xuống (cao xuống thấp), tại đó dữ
liệu được truyền đi. Khi CPHA bằng 0, dữ liệu được truyền ở cạnh lên
của xung đồng hồ. Dữ liệu được truyền ở cạnh xuống khi CPHA là 1.
Tùy thuộc vào các giá trị của Clock Polarity (CPOL) và Clock Phase (CPHA), có
4 chế độ hoạt động của SPI.
o Chế độ dây
chuyền - Daisy: Ở
chế độ này, chỉ có
một đường Slave
Select được kết
nối với tất cả các
Slave. MOSI của
Master được kết
nối với MOSI của
Slave 1. MISO
của Slave 1 được
kết nối với MOSI
của Slave 2 và
vv .. MISO của
Slave cuối cùng
được kết nối với
MISO của Master.
2.2.2.Giao thức kết nối I2C
2.2.2.1. Giới thiệu về giao thức kết nối I2C
I2C (Inter-Integrated Circuit), được phát triển năm 1982 bởi hãng sản xuất linh
kiện điện tử Philips (nay là hãng NXP Semiconductors) cho quá trình giao tiếp giữa các
IC. I2C là một chuẩn truyền thông nối tiếp đồng bộ được sử dụng để truyền dữ liệu ở chế
độ song công toàn phần trong khoảng cách ngắn.
* truyền thông nối tiếp (serial communication): quá trình gửi dữ liệu tuần tự theo
từng bit, qua một kênh truyền thông hoặc bus, trái ngược với truyền thông song
song (parallel communication) trong đó một số bit được gửi toàn bộ và cùng lúc,
trên một đường truyền hoặc liên kết (link hoặc communication link) gồm nhiều
kênh song song.
* đồng bộ: giao tiếp đồng bộ hay truyền đồng bộ là một trong hai loại truyền thông
nối tiếp trong đó bất cứ quá trình gửi và nhận giữa Master-Slave cũng đếu được
đồng bộ hóa bởi một tín hiệu đồng hồ chuyên dụng (xung clock) sinh ra bởi thiết bị
phát dữ liệu (Master) để giúp cho thiết bị thu dữ liệu tìm kiếm dữ liệu trên bus.
*song công toàn phần: hay gọi là " full – duplex ". Nghĩa là tại 1 thời điểm có thể
xảy ra đồng thời quá trình truyền và nhận.
Chuẩn giao tiếp I2C là một loại giao thức kiểu Master – Slave. I²C phù hợp với
các ngoại vi mà sự ưu tiên về kết nối đơn giản và chi phí sản xuất thấp quan trọng hơn là
yêu cầu về tốc độ truyền.
2.2.2.2. Cấu tạo giao thức I2C
Trong giao thức I2C, các thiết bị được kết nối trong một mối quan hệ Master –
Slave trong một giao diện đa điểm (node). Trong loại giao diện này, một thiết bị
được coi là Master của bus (thường là một vi điều khiển) và tất cả các thiết bị khác
(IC ngoại vi hoặc thậm chí các vi điều khiển khác) đều được coi là Slave. Trong
giao thức I2C, có thể chỉ có một thiết bị Master nhưng nhiều thiết bị Slave.
Dữ liệu được truyền đi được gửi qua dây SDA và được đồng bộ với tín hiệu đồng
hồ (clock) từ SCL. Tất cả các thiết bị / IC trên mạng I2C được kết nối với cùng
đường SCL và SDA.
Cả hai đường bus I2C (SDA, SCL) đều hoạt động như các bộ lái cực máng hở
(Open Drain). Nó có nghĩa là bất kỳ thiết bị / IC trên mạng I2C có thể lái SDA và
SCL xuống mức thấp, nhưng không thể lái chúng lên mức cao. Vì vậy, một điện trở
kéo lên (khoảng 1 kΩ đến 4,7 kΩ) được sử dụng cho mỗi đường bus, để giữ cho
chúng ở mức cao (ở điện áp dương) theo mặc định.
*Giải thích cho Open Drain: Lý do sử dụng một hệ thống cực máng hở (open
drain) là để không xảy ra hiện tượng ngắn mạch, điều này có thể xảy ra khi một
thiết bị cố gắng kéo đường dây lên cao và một số thiết bị khác cố gắng kéo đường
dây xuống thấp.
Các thiết bị kết nối với bus I2C được phân loại hoặc là thiết bị Chủ (Master) hoặc
là thiết bị Tớ (Slave). Ở bất cứ thời điểm nào thì chỉ có duy nhất một thiết bị
Master ở trang thái hoạt động trên bus I2C.
Tất cả các thiết bị đáp ứng các hướng dẫn từ thiết bị Master này đều là Slave. Để
phân biệt giữa nhiều thiết bị Slave được kết nối với cùng một bus I2C, mỗi thiết bị
Slave được gán một địa chỉ vật lý 7-bit cố định.
2.2.2.3. Khung truyền I2C
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:
Khối bit địa chỉ (7 Address Bits): 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 R/W (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 (Bit 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 bit dữ liệu (8 Data Bits): 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.
Thiết bị Master
gửi 7bit địa chỉ
của thiết bị Slave mà thiết bị Master muốn giao tiếp cùng với bit
Read/Write.
Start Bit (Bit bắt đầu): là bit đầu tiên được truyền trong 1 Frame. Báo hiệu cho thiết bị
nhận có một gói dữ liệu sắp được truyền đến.
Data Bits (Khối bit dữ liệu): khung truyền dữ liệu, gồm các data bits thường có độ dài
5-9 bits
Parity Bit (Bit chẵn lẽ): kiểm tra tính đúng sai của dữ liệu truyền. Có thể có hoặc không
Stop Bit (Bit dừng): là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi xong.
Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo tính đúng đắn của dữ
liệu.
UDR: hay thanh ghi dữ liệu, là 1 thanh ghi 8 bit chứa giá trị nhận được và phát đi của
USART. Thực chất thanh ghi này có thể coi như 2 thanh ghi TXB(Transmit data Buffer)
và RXB (Reveive data Buffer) có chung địa chỉ. ĐọcUDR thu được giá trị thanh ghi đệm
dữ liệu nhận, viết giá trị vào UDR tươngđương đặt giá trị vào thanh ghi đệm phát, chuẩn
bị để gởi đi.
UCSRA (USART Control and Status Register A): là 1 trong 3 thanh ghi điềukhiển hoạt
động của module USART. Chủ yếu chứa các bit trạng thái như bit báo quá trìnhnhận kết
thúc (RXC), truyền kết thúc (TXC), báo thanh ghi dữ liệu trống (UDRE), khung truyền
có lỗi (FE), dữ liệu tràn (DOR), kiểm tra parity có lỗi (PE), kiểm tra UDR đang trống
(UDRE), chỉ định gấp đôi tốc độ truyền (U2X), chọn chế độ đa xử lý (MPCM).
UCSRB (USART Control and Status Register B): đây là thanh ghi quan trọng điều khiển
USART. Chứa các bit trạng thái như cho phép ngắt sau khi nhận (RXCIE), cho phép ngắt
sau khi gửi (TXCIE), cho phép ngắt nếu UDR trống (UDRIE), cho phép UART nhận dữ
liệu (RXEN), cho phép UART gửi dữ liệu (TXEN), bit thứ 9 trong khối bit dữ liệu khi
nhận (RXB8), bit thứ 9 trong khối bit dữ liệu khi nhận (TXB8)
UCSRC (USART Control and Status Register C): thanh ghi này chủ yếu quy định khung
truyền và chế độ truyền. Gồm chọn chế độ truyền đồng bộ hay không (UMSEL=1 đồng
bộ và ngược lại), quy định bit parity (UMP0 + UMP1), quy định bit stop (USBS = 0->1
bit, USBS = 1 -> 2 bit), quy định độ dài truyền dữ liệu (UCSZ0, UCSZ1, UCSZ2 có
trong UCSRB).
UBRRL và UBRRH (USART Baud Rate Register): 2 thanh ghi thấp và cao quyđịnh tốc
độ baud.
UART truyền thêm bit start, bit chẵn lẻ và bit dừng vào
khung dữ liệu.
Toàn bộ gói được gửi nối tiếp từ UART truyền đến UART nhận. UART nhận lấy mẫu
đường dữ liệu ở tốc độ truyền được định cấu hình trước.