Thực nghiệm 1 Phần cứng

Một phần của tài liệu Nghiên cứu thiết kế chế tạo thử lồng ấp trẻ sơ sinh (Trang 66)

- Khảo sát vấn đề các lồng ấp nước ngoài thường được dùng ở Việt Nam.

3.Thực nghiệm 1 Phần cứng

3.1. Phần cứng D M icro p h o n e x>t) 9t 8 7 6 5 4 3 2 ì 1 2 3 4 5 6 7 8 9 -►ri

Hình 2: Tín hiệu PWM lối ra sau khi đã được lọc.

K D Loi Vao ..Phun Bam Erase 1 . Record i ) Play 1 ' r ~ l ADCQ A V R V i Dieu Khien CH PI>0 s 1 PD1 PWM o CU PD2 CHEZ? K D Loi R a ( 1 IN y \ N L o a

Hỉnh i: Sơ đổ khối hệ thông.

Để có thể điểu khiển hệ thống âm thanh có ba phím bấm, được đặt tên là: "erase”, “record”, “playback”. Nếu các nút bấm này không được nhấn thì các điện trớ treo cao bên trong sẽ đàm bảo một điện áp Vcc ở các chân PDO - PD2. Khi nhấn một nút đường lối vào được kéo xuống đất. DataFlash được kết nối trực liếp tới vi điều khiển AVR bàng bus SPI. Điện áp rương tự AVCC được kết nối với v c c bàng một bộ lọc thông thấp RC. Điện áp chuẩn cho bộ biến đổi ADC được đăt vào AVCC.

Hình 4: B o a r d m ạ c h s a u k h i lắ p rá p.

Mạch ra loa bao gồm một mạch lọc Chebychev thông thấp bậc 5 và bộ khuyếch đại hệ số đcm vị. Mạch lọc được tạo bởi hai mạch lọc Chebychev bậc hai và bộ lọc thông thấp bậc một tích cực. Các tần số cắt của ba bộ lọc này bị địch một chút so với nhau để giới hạn sự gợn sóns cùa cua dái truyền qua của cả mạch lọc. Tần số cắt tổng thể được đặt là 4000 Hz xấp xỉ bầng 1/4 tần sô PWN1 (15.686 Hz). Một mạch khuếch đại lặp (hệ số khuếch đại bàng 1) được sử dụng để hạn chế anh hưởng phản hồi từ lối ra.

3.2. Phần mềm

1. Khởi tạo

Khi chương trình bát đầu chạy các cổng phải được thiết lập. Điểu này được thực hiện tron2

chương trình con “setup”.

Giao thức SPI định nghĩa một thiết bị như một thiết bị chủ và các thiết bị khác được kết nối tới nó như thiết bị tớ. Trong ứng dụng này vi điểu khiển AVR giữ chức năng như một thiết bị chu và DataFlash như thiết bị tớ.

--- Tạp*chí Khoa Học, Đại Học Quốc Gia Hà Nội, 4-2005

Hình 5: Lưu đổ thuật toán vòng lặp chính.

SPI của Atmega8535 được quy định như một chức năng khác cua cổng PortB (PB5 đẽn PB7 ). Trong ứng dụng này các tín hiệu điểu khiển cho DataFlash cũng được thiệt lập trẽn cóng PortB (PB0 đến PB2 và PB4). Chân PB3 được sử dụng để điều khiển LED trạng thái. Đé thiết lặp thiẽt bị chủ, các tín hiệu: xung nhịp nối tiếp (SCK), lối ra thiết bị chu/lối vào thiết bị tớ (MOSI). chọn chip

- w -hí Khoa Học, Đại Học Quốc Gia Hà Xội. 4-2005

(CS), bảo vệ ghi (WP) và đặt lại (RST) là các lối ra, trong khi các tín hiệu: vào thiết bị chủ/ra thiết bị tớ (MISO) và sẵn sàng/bận (RDY/BSY) là các lối ra. Chán PB3 cũng được định nghĩa như lối rà cho điểu khiển LED trạng thái. Thanh ghi hướng truyền dữ liệu cho cổng PortB được đinh nghĩa

bằng OxBD.

Bộ biến đổi ADC của Atmega8535 được kết nối tới cổng PortA. Do đó cổng PortA được định nghĩa như lối vào trở kháng cao.

Cống PortD được sử dụng như lối vào cho các phím bấm và như lối ra chò tín hiệu PWM ờ đây chức năng PWM của Timerl trên chân lối ra PD4 được sử dụng.

Cuối cùng các ngắt phải được cho phép. Trong ứng dụng này hai ngắt: ADC và tràn Timer 1 được sư dụng, se được cho phep va câm ngay trong chương trình con khi chúng được vêu cầu

2. Vòng lặp chính

Trong vòng lặp chính ba phím bấm được quét. Nếu một trong số chúng được bấm thì LED sẽ được bật để chỉ ra rằng hệ thống đang bận, và chương trình con tương ứng sẽ được gọi

Trong suốt vòng lặp chính, LED trạng thái được tắt để chỉ ra rằng hệ thống đang sẩn sàng.

3. Xoá bộ nhớ

Trước khi dữ liệu có thể được ghi vào trong bộ nhớ, DataFlash phải dược xoá.

Khi chương trình con “erase” được gọi, một cờ sẽ được đặt để chỉ ra ràng trong chu kỳ ohi tiếp theo, dữ liệu mới có thể được ghi ở vị trí bát đầu của DataFlash.

Giao diện SPI phải được khởi tạo cho việc truy xuất DataFlash. Thứ tự dữ liệu cho DataMash là bit có ý nghĩa nhất (MSB) đầu tiên và Atmega8535 là thiết bị chủ. Trong ứng dụng này SPI sẽ được khỏi tạo trong chế độ 3. Để có được khả năng truyền dữ liệu nhanh nhất, sự chia xung nhịp thấp nhất được chọn, do đó bus SPI được chạy ở tần số 2 MHz, tần số thạch anh cho mạch dao động được chọn là 8 MHz.

4. Ghi âm

Chương trình con “record” bao gồm việc khởi tạo bộ biến đổi A/D và một vòng lặp rỗng, chương trình được thực hiện khi phím “record” được nhấn. Chân ADCO được sử dụng trong ứng dụng này cho lối vào bộ biến đổi ADC của vi điều khiển, đòi hỏi thanh ghi chọn bộ hợp kénh ADC (ADC Multiplexer Select Register: ADMUX) phải được đặt tới zero. Trong thanh ghi trạng thái và điều khiển ADC (ADCSR), ADC được cho phép với hệ số chia xung nhịp là 32, chế độ chuyển đổi đơn, cho phép ngắt và cờ ngắt được xoá. Sự chuyển đổi A/D được bắt đầu ngay lập tức. Sau khi sự chuyên đổi hoàn thành ngắt ADC sẽ xảy ra, chi thị ra rằng sự chuyển đổi đã kết thúc và kết quả có thể được đọc ra từ thanh ghi dữ liệu của ADC.

Tín hiệu tương tự từ micro được lấv mẫu ở tần số 15.686 Hz. Tần số này là giông tần sô' PWM lối ra. Để đạt được tần số lấy mẩu 15.686 Hz một mẫu phải được lấy sau mỗi khoang tương ứng bàng 510 chu kỳ lệnh của CPU (15.686 Hz * 510 = 8 MHz). Đế có được kết quả biến đói A/D sau từng 510 chu kỳ xung nhịp ADC chạy trong chế độ biến đổi đơn với hệ số chia xung nhịp ADC là 32. Một sự chuyển đổi đom sẽ lấy 14 chu kỳ ADC. Do đó sự chuyến đổi sẽ sẩn sàng sau 14 *32 = 448 chu kỳ lệnh của CPU. Khi một sự chuyển đổi kết thúc một ngát sẽ được tạo ra. Chương trình ngắt sau đó sẽ thực hiện một vòng lặp để điền vào 510 - 448 = 62 chu kỳ còn thiêu, trước khi một

sự chuyển đổi A/D mới được bắt đầu. Kết quả của sự chuyển đổi 10-bit biểu diễn cho giá trị ờ lối

vào bộ biến đổi A/D tại thời điểm sau khi sự biến đổi được bắt đầu được 2 chu kỳ 10 bit đó bao phủ dải từ AGND tới AREF, tương ứng là 0 đến 5 V trong ứng dụng này. Tuy nhiên, tín hiệu lối ra của mạch micro bị giới hạn trong dải 2,3 V đến 3,5 V. Dc đó kết quả chuyển đổi 10-bit được trừ bởi giá trị biểu diễn điện áp lối vào cực tiểu. Đó là 0x1 D5 cho 2,3 V. Phần dữ liệu biểu diễn giá trị tín hiệu trên 3,5 V được loại bỏ bằng việc cắt hai MSB của kết quả biến đổi. Điều này được thực hiộn một cách tự động khi kết quả chuyển đổi được chuyển cho chương trình con “write To flash" vì biến “flash_data” của nó được định nghĩa như một byte đơn (8-bit). Cuối cùng 8-bit dữ liệu phải dược ghi vào DataFlash trước khi ngắt sự chuyển đổi ADC tiếp theo xảy ra.

5. Ghi flash

Việc ghi dữ liệu tới DataFlash được thực hiện theo cách sau: đầu tiên ghi tới bộ đệm. đến khi bộ đệm này đầy, nội dung của nó sẽ được ghi tới một trang của bộ nhớ chính. Trong chương trình con “write_to„flash” hai biến đếm được sử dụng: một cho biểu diễn số byte trong bộ đệm và một cho biểu diễn số trang sẽ được viết tới. Nếu cờ new-đata chỉ thị rằng DataFlash trống, cả hai biến đếm sẽ được đạt thành zero. Nếu bộ nhớ đã chứa dữ liệu, các biến chỉ ra vị trí trống tiếp theo trono bộ nhớ, điều này đảm bảo ràng dữ liệu mới sẽ được ghi nối tiếp vào nội dung của bộ nhớ.

6. Phát lại âm thanh

Trong chương trình con “playback” nội dung của DataFlash được đọc và điều chế PWM 8-bit, chạy ở tần số 15.686 Hz. Để đạt được tốc độ cao hơn, dữ liệu sẽ không được đọc ra một cách trực tiếp từ bộ nhớ chính mà thay vào đó được chuyển tới một trong hai bộ đệm và sau đó dữ liệu sẽ được đọc từ bộ đệm. Trong cùng thời gian đó, trang bộ nhớ tiếp theo được copy vào trong bộ đêm còn lại. Bộ đếm/bộ định thời_l 16 bit được sử dụng để tạo tín hiệu PWM trên chân OC1B. Các thanh ghi A và B (TCCRA/TCCRB) được dùng để đặt chế độ làm việc cho bộ đếm/bộ định thời. Để chạy PWM ở tần sô' cao nhất có thể, bộ chia xung nhịp PWM được đặt bàng 1. Khi set-up được thực hiện thì trang đầu tiên được copy vào bộ đệm 1. Sau khi bộ đệm 1 chứa dữ liệu ốn định nôi dung của trang tiếp theo sẽ được truyền tới bộ đệm 2. VI hai bộ đệm là độc lập với nhau, dữ liệu có thể sẵn sàng được đọc từ bộ đệm 1 trong khi DataFlash vẫn đang copy trang nhớ tiếp theo tới bộ đệm 2.

Khi bộ đếm PWM chứa giá trị “0”, một ngắt tràn Timerl xuất hiện. Ngắt này được sử dụng đế đổng bộ dữ liệu lối ra từ DataFlash với tần số PWM. Khi một giá trị từ bộ đệm của DataFlash được dịch tới vi điều khiển AVR, một vòng lặp được thực hiện cho đến khi ngắt tràn Timer 1 xuất hiện. Sau đó dữ liệu được viết tới thanh ghi so sánh lối ra B của Timer 1 (OCRIB) và sẽ được chốt một cách tự động tới lối ra PWM khi bộ đếm PWM đạt tới giá trị cực đại của nó (255 cho trường hợp PWM 8 bit).

Sau khi giá trị cuối cùng của bộ đệm được đọc, tính tích cực cua bộ đệm sẻ được hoán đỏi cho nhau. Nếu toàn bộ bộ nhớ đã được đọc, tất cả các ngắt sẽ bị cám và Timer/Counterl được dừng đếm.

VI. Kết luận

Trong báo cáo đã giới thiệu một sô kết quả thực nghiệm trong việc ghi, lưu trừ. và phát lại ám thanh bầng cách sử dụng vi điều khiển AVR và một bộ nhớ dữ liệu nôi tiêp. Các đặc tính trẽn chip của vi điều khiển đã được khai thác và sử dụng đê giảm tới mức tỏi thiểu các yêu cáu về mãt phán

J i í Khoa Học, Đại Học Quốc Gia Hà Nội, 4*2005

cứng bén ngoài trong thiết kế mạch. Mạch đã được lắp ráp, chạy thử và đã cho một số kết quả khả quan và có thể triển khai ứng dụng trong một số ứng dụng thực tế trẽn các hệ đo lường và điều khiển.

Tuy nhiên để mở rộng phạm vi ứng dụng thì việc nâng cao hơn nữa chất lượng cùa thu phát âm là một yêu cầu cần thiết. Mạch sẽ tiếp tục được hoàn thiện theo các hướng:

o Sử dụng các mạch lọc có đặc trưng đáp ứng biên độ-tần số tốt hơn o Tăng độ phân giải cho quá trình lượng tử hoá

Một phần của tài liệu Nghiên cứu thiết kế chế tạo thử lồng ấp trẻ sơ sinh (Trang 66)