Sơ lược:
Chương 1: Cảm biến và thu nhập dữ liệu nhờ cảm biến
Chương 2: Xử lý tín hiệu trong cảm biến thông minh
Chương 3: Họ vi điều khiển nhúng và loại vi điều khiển MC68HC11
Chương 4: Xây dựng thực tế hệ thống thu nhập dữ liệu nhiều kênh, thông minh dùng cảm biến ánh sáng/tần số dựa trên họ vi điều khiển MC68HC11
Cán bộ hướng dẫn: GS.TS Hồ Văn Sung
Cán bộ đồng hướng dẫn: CN. Trần Ngọc Quý
77 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2668 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Nghiên cứu và thiết kế hệ thống thu nhập và xử lý dữ liệu nhiều kênh, thông minh trên cảm biến ánh sáng/tần số dùng MC68HC11, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
:
fx = fx1 + fx2 = f0 (
2
2
N
N x +
1
1
N
N x )
Tổng tuyệt đối của hai chu kỳ
Tx = Tx1 + Tx2 = T0 (
2
2
N
N x +
1
1
N
N x )
Bộ cộng (trừ) thường được sử dụng trong các thành phần của bộ nhân hoặc bộ
chia.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 37 -
2.4.2. Bộ nhân và bộ chia
Trong lĩnh vực đo đạc tần số bộ nhân tần đóng vai trò như một bộ khuyếch đại
biên độ của tín hiệu. Chúng sẽ làm tăng độ nhạy của thiết bị đo và mở rộng dải đo
trong vùng tín hiệu nhỏ. Đồng thời chúng cải thiện bộ chuyển đổi từ tần số sang mã
theo hai hướng sau. Thứ thất giúp tăng tốc độ cho phép giảm nhiễu lượng tử, thứ hai
có thể giảm thời gian đo đạc, vì vậy sử dụng trong thiết bị đo để điều khiển nhiều đại
lượng biến đổi chậm, hoặc giảm giải động của nhiễu bằng cách đo các đại lượng biến
đổi nhanh. Cuối cùng bộ nhân tần có thể sử dụng cho việc đồng nhất tín hiệu, cho phép
với các thiết bị đo được sử dụng với cảm biến với những tần số lối ra khác nhau được
đồng nhất về cùng một tần số. Tiếp theo đây chúng ta sẽ xem xét một cách chi tiết hơn.
Mặc dù trên thực tế bộ nhân tần đã được biết và sử dụng ở trong các công
nghệ radio và đo lường học (pha và thời gian) trước đó một thời gian dài. Sự xuất hiện
kỹ nghệ đo tần số với yêu cầu đặc biệt không chỉ mang lại cho chúng ta nhiều bộ nhân
mới mà nó còn tạo ra nhiều vấn đề mới cần giải quyết.
Bộ nhân tần là một bộ chuyển đổi những giao động điện ở lối vào với tần số fxi
thành những giao động ở lối ra và với tần số trung bình
fxout = km .fx1
Ở đây km là hệ số nhân tần, nếu km nhỏ hơn, ta có bộ nhân tần có chức năng
của bộ chia.
Dải làm việc của bộ nhân, hay dải thông là đặc tính xác định bằng mối quan hệ
giữa tần số làm việc tối đa và tối thiểu.
D =
min
max
fxi
fxi
Tương tự, log2 của nó log2D là dải thông tính theo Octave, hay lgD là dải
thông tính bằng Decac.
Đặc trưng cơ bản của bộ nhân là hệ số nhân, tốc độ và phạm vi dải tần của nó.
Bộ nhân tần có hệ số nhân tần lớn, tốc độ cao, và dải tần càng rộng càng tốt. Các yêu
cầu này là mâu thuẫn với nhau. Thực tế, nếu ta tăng km thì giảm phạm vi tần số làm
việc. Mặt khác nếu ta mở rộng dải thông thì phải giảm tốc độ làm việc.
Dạng xung lối vào và lối ra của bộ nhân tần có sự khác biệt rất lớn. Nếu dạng
xung lối vào không như mong muốn, có thể phải dùng thêm bộ tạo dạng xung. Sau đây
là một vài điểm đặc biệt khi nhân tín hiệu có dạng xung khác nhau.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 38 -
− Nếu tín hiệu cảm biến có dạng răng cưa, khi đó bộ đếm sẽ được thiết lập ở
một số mức bởi điện áp lối vào. Sườn không đổi của điện áp răng cưa và mức kích
hoạt không đổi làm cho bộ nhân không phù hợp khi làm việc trong một giải tần rộng.
Bởi vì sự xắp xếp các xung theo thời gian là không đồng nhất, có một số thành phần
lệch khỏi vị trí thông thường. Nguyên nhân là do sự thay đổi biên độ của xung răng
cưa. Còn đối với những tín hiệu vào không phải là dạng xung răng cưa thì hệ thống có
thể đạt được xung lối ra với một giải tần rộng.
Sử dụng lối vào dạng dạng xung tam giác cân xứng, bộ nhân được thực hiện
bằng cách liên tục lập lại việc chỉnh lưu dạng sóng. Thành phần một chiều được trừ đi
khỏi tín hiệu lối vào, tiếp theo là tinh chỉnh dạng sóng. Sau cùng chúng ta đạt được
điện áp tam giác song có tần số gấp đôi.
− Đối với tín hiệu lối vào dạng hình sin, bộ nhân với bộ mã hóa không gian
được thực hiện nhờ bộ chuyển đổi tín hiệu không tuyến tính (ví dụ: nhân chập bình
phương, hoặc nhân chập bậc 3)
(Vm.cos wt)2 = 2
1 V2m . cos2wt + 2
1 V2m
(Vm.cos wt)3 = 4
1 V3m . cos3wt + 4
1 V3m. coswt
Thành phần một chiều do bình phương được loại bỏ một cách thích hợp. Bộ
nhân cũng hỗ trợ việc kết nối nhiều tầng mà không hạn chế về mặt giải tần .
− Còn đối với lối vào là xung dạng chữ nhật thì bộ nhân tần dễ dàng thực
hiện một cách đơn giản.
2.4.3. Toán tử vi phân và tích phân
Các bộ vi phân và tích phân thường được sử dụng trong hệ thống điều khiển tự
động, vi phân là một trong những toán tử khó nhất. Thông thừơng nó được biểu diễn
theo cách sau đây.
Ft = a. dt
tdF )(1
Ở đây F1(t) = k x(t) là tần số xung lối vào; dt
tdF )(1 là vi phân bậc 1 của F1(t).
Trong trường hợp lý tưởng phương trình đạo hàm của một số hàm theo thời
gian có thể được viết như sau
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 39 -
Ft(ideal) = t
tFttF
t ∆
−∆+
→∆
)()(. 1
0
lim = dt
tdF )(1
Trong thực tế ∆ t không tiến đến 0 nhưng nó được cố định tại một giá trị nhỏ
τ∆ , giá trị này là rất nhỏ khi so sánh với chu kỳ Tx trong trường hợp này ta có thể viết
như sau:
F(t) = τ∆
−∆+ )()(. 1 tFttF = τ∆
∆ )(1 tF = k.
dt
tdF )(1
Tính tích phân xung tần số được quy về việc đếm xung nhờ các bộ đếm hai
hướng. Việc thực thi chúng có thể tính toán nhờ phần mềm trong vi điều khiển. Khả
năng của bộ tích phân này hạn chế bởi dung lượng bộ nhớ.
Số lượng xung tích được bởi bộ đếm có thể được biểu diễn theo phương trình
sau.
N(τ ) = dttF∫τ
0
)(
2.4.4. Một ứng dụng các toán tử
− Đồng nhất tín hiêu tần số:
Trong hệ thống thu thập dữ liệu đa kênh, nhiều cảm biến các lối ra cẩm biến
có thể có nhiều tần số dùng để biểu diễn thông tin. Thông thường dải tần số lối ra từ
khoảng vài Hz tới vài MHz. Trong một dải rộng như vậy, để biến đổi thẳng sang mã,
hay xử lý trực tiếp tại vi điều khiển là rất khó khăn. Thông thường trước khi đem vào
xử lý, tín hiệu tần số phải qua bộ đồng nhất tần số để quy tất cả tín hiệu về dải tần duy
nhất. Bộ đồng nhât tần số như vậy có thể xây dựng từ các phần tử cơ sở là các bộ nhân
tín hiệu tần số và có thể đạt được độ chính xác cao, tốc độ lớn, tin cậy và ổn định trong
một dải rộng. Ta biểu diễn hệ thống như vậy bằng sơ đồ sau:
Hình 16. Sơ đồ khối đơn giản bộ đồng nhất tần số.
Km
fx fo
Điều
khiển
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 40 -
Như vậy ta thấy, trong sơ đồ khối đơn giản. Bộ đồng nhất tần số chỉ gồm bộ
nhân tần với hệ số nhân được điều khiển bởi bộ điều khiển. Hệ số Km tuỳ thuộc vào tín
hiệu lối vào và được tính toán bởi bộ điều khiển hình vẽ 16.
2.5. Thuật toán thông minh và giao tiếp bus
2.5.1. Thuật toán thông minh
Hiểu thế nào là một thuật toán thông minh. Thông minh tức là khả năng đáp
ứng lại thay đổi của môi trường ngoài hay thay đổi điều kiện hoạt động một cách
nhanh nhạy và hiệu quả. Máy móc thông minh có nghĩa là nó có khả năng thích nghi,
thay đổi phương thức làm việc sao cho hiệu quả nhất. Như vậy một hệ thống thông
minh yêu cầu phải tự nhận biết được một số điều kiện môi trường ảnh hưởng tới khả
năng làm việc của nó và phải có thông tin phản hồi từ lối ra về bộ điều khiển hoạt
động. Để từ những có thể ra quyết định, hành động sao cho được tín hiệu lối ra phù
hợp hơn với yêu cầu. Thông thường thuật toán thông minh cần phải có bộ vi xử lý trợ
giúp. Bởi vì khối lượng tính toán trong thuật toán thông minh là rất lớn và thường xử
lý bằng phần mềm. Đôi khi cũng có thể thực hiện bằng phần cứng. Trong trường hợp
đó, thuật toán thông minh xây dựng từ thuật toán thông thường với bộ hồi tiếp
(fedback) kết hợp với một số bộ so sánh. Do điều kiện thời gian chưa cho phép,các
thuật toán thông minh chưa được trình bày ở đây. Nếu có điều kiện em sẽ tình bày sau.
2.5.2. Giao tiếp bus
Hai loại giao tiếp bus thường sử dụng nhất trong cảm biến thông minh là
chuẩn giao tiếp bus I2C và chuẩn RS232C.
− I2C là loại giao tiếp bus rất được ưa chuộng trong cảm biến thông minh.
Giao thức của nó khá là đơn giản và yêu cầu phần cứng là tối thiểu. Tuy nhiên bù lại
ưu điểm phần cứng đơn giản, giao thức truyền thông của nó quá cứng nhắc. I2C được
thay thế bằng một chuẩn giao tiếp bú khác I2S (Intergrated smart sensor bus). I2S
tương tự như I2C nhưng được đơn giản hoá giao thức, chỉ giữ lại một phần nhỏ giao
thức phức tạp nhưng cần thiết cho chức năng giao tiếp bus. Cả I2C và I2S đều đòi hỏi
hai đường dây cho việc truyền tín hiệu: một đường dây thời gian và một đường dây dữ
liệu. I2S có ưu điểm là không định nghĩa chiều dài bus. Chiều dài tối đa của nó tuỳ
thuộc vào đầu cuối dữ liệu và đầu cuối kênh dữ liệu.
− Chuẩn RS232C là chuẩn truyền dữ liệu nối tiếp dùng phổ biến trong khoa
học máy tính. Ở đây nó dùng cho giao tiếp giữa cảm biến với may tính. Chi tiết về
RS232C xin tham khảo tài liệu về khoa học máy tính.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 41 -
Chương 3
HỆ VI ĐIỀU KHIỂN NHÚNG VÀ LOẠI VI ĐIỀU KHIỂN
MC68HC11 CỦA MOTOROLA
3.1. Các bộ vi điều khiển và các bộ xử lý nhúng
Trong mục này chúng ta bàn về nhu cầu đối với các bộ vi điều khiển và so
sánh chúng với các bộ vi xử lý phổ thông như Pentium và các bộ vi xử lý x86 khác.
Chúng ta cùng xem xét vai trò của các bộ vi điều khiển trong thị trường các sản phẩm
nhúng. Ngoài ra, chúng ta cùng thảo luận về tiêu chuẩn chọn lựa một bộ vi điều khiển
như thế nào?
3.1.1. Bộ vi điều khiển so với bộ vi xử lý phổ thông
Sự khác nhau giữa một bộ vi điều khiển và một bộ vi xử lý là gì? Bộ vi xử lý
ở đây là các bộ vi xử lý phổ thông như họ Intell x86 (8086, 80286, 80386, 80486 và
pentium) hoặc họ Motorola 680x0 (68000, 68010, 68020, 68030, 68040 v.v...). Những
bộ vi xử lý này không có RAM, ROM và không có các cổng vào ra trên chíp . Với lý
do đó mà chúng được gọi chung là các bộ vi xử lý phổ thông.
Hình17. Hệ thống vi xử lý được so sánh với hệ thống vi điều khiển.
Bus dữ
liệu CPU
Vi xử
lý phổ
thông
ROM RAM
Địn
h
thời
Cổng
nối
tiếp
Cổng
vào
ra
CPU RA
M
RO
M
Vào
ra
Bộ
định
Cổng
nối
tiếp
(a) Vi xử lý phổ thông
Bus địa
chỉ
(b) Bộ vi điều khiển
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 42 -
Một nhà thiết kế hệ thống sử dụng một bộ vi xử lý phổ thông chẳng hạn như
Pentium hay 68040 phải bổ sung thêm RAM, ROM, các cổng vào ra và các bộ định
thời ngoài để làm cho chúng hoạt động được. Mặc dù việc bổ sung thêm RAM, ROM
và các cổng vào ra bên ngoài làm cho hệ thống cồng kềnh và đắt hơn, nhưng chúng có
ưu điểm là linh hoạt chẳng hạn như người thiết kế có thể quyết định số lượng RAM,
ROM và các cổng vào ra cần thiết phù hợp với bài toán trong tầm tay của mình.
Điều này không thể có được đối với các bộ vi điều khiển. Một bộ vi điều khiển
có một CPU (một bộ vi xử lý) cùng với một lượng cố định RAM, ROM, các cổng vào
ra và một bộ định thời tất cả trên cùng một chip. Hay nói cách khác là bộ xử lý, RAM,
ROM, các cổng vào ra và bộ định thời đều được nhúng với nhau trên cùng một chip;
do vậy người thiết kế không thể bổ sung thêm bộ nhớ ngoài, cổng vào ra hoặc bộ định
thời cho nó. Số lượng cố định của RAM, ROM trên chíp và số các cổng vào ra trong
các bộ vi điều khiển làm cho chúng lý tưởng đối với nhiều ứng dụng mà trong đó giá
thành và không gian lại hạn chế. Trong nhiều ứng dụng, ví dụ một bộ điều khiển ti vi
từ xa thì không cần công suất tính toán của bộ vi xử lý 486 hoặc thậm chí như 8086.
Trong rất nhiều ứng dụng thì không gian nó chiếm, công suất nó tiêu tốn và giá thành
trên mọt đơn vị là những cân nhắc nghiêm ngặt hơn nhiều so với công suất tính toán.
Những ứng dụng thường yêu cầu một số thao tác vào – ra để đọc các tín hiệu và tắt mở
những bít nhất định.
Điều thú vị là một số nhà sản xuất các bộ vi điều khiển đã đi xa hơn là tích
hợp cả một bộ chuyển đổi ADC và các ngoại vi khác vào trong bộ vi điều khiển.
Bảng 1. Một số sản phẩm được sử dụng các bộ vi điều khiển nhúng
Thiết bị nội thất gia đình Văn phòng Ô tô
Đồ điện trong nhà
Máy đàm thoại
Máy điện thoại, máy Fax
Các hệ thống an toàn
Các bộ mở cửa ga-ra xe
Máy trả lời
Máy tính gia đình
Điện thoại
Máy tính
Các hệ thống an toàn
Máy Fax
Máy sao chụp
Máy in laze
Máy in màu
Máy tính hành trình
Điều khiển động cơ
Túi đêm khí
Thiết bị ABS
Đo lường
Hệ thống bảo mật
Điều khiển truyền tin
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 43 -
Tivi, truyền hình cáp
Máy quay camera
Điều khiển từ xa
Trò chơi điện tử
Điện thoại tổ ong
Các nhạc cụ điện tử
Máy khâu
Điều khiển ánh sáng
Máy nhắn tin
Đồ chơi
Các dụng cụ tập thể hình
Máy nhắn tin Giải trí
Điều hoà nhiệt độ
Điện thoại tổ ong
Mở cửa không cần chìa
khoá
3.1.2. Các bộ vi điều khiển cho các hệ thống nhúng
Trong các tài liệu về các bộ vi xử lý ta thường thấy khái niệm hệ thống nhúng
(Embeded system). Các bộ vi xử lý và các bộ vi điều khiển được sử dụng rộng rãi
trong các sản phẩm hệ thống nhúng. Một sản phẩm nhúng sử dụng một bộ vi xử lý
(hoặc một bộ vi điều khiển) để thực hiện một nhiệm vụ và chỉ một mà thôi. Một máy
in là một ví dụ về một việc nhúng vì bộ vi xử lý nên trong nó chỉ làm một việc đo là
nhận dữ liệu và in nó ra. Điều này khác với một máy tính PC dựa trên bộ xử lý
Pentium ( hoặc một PC tương thích với IBM x86 bất kỳ ). Một PC có thể được sử
dụng cho một số trạm bất kỳ các dịch vụ in, bộ đầu cuối kiểm kê nhà băng, máy chơi
trò chơi điện tử, trạm dịch vụ mạng hoặc trạm đầu cuối Internet. Phần mềm cho các
ứng dụng khác nhau có thể nạp và chạu. Tất nhiên là lý do hiển nhiên để một PC thực
hiện hàng loạt các công việc là nó có bộ nhớ RAM và một hệ điều hành nạp phần mềm
ứng dụng thường được đốt vào trong ROM. Một máy tính PC x86 chứa hoặc được nối
tới các sản phẩm nhúng khác nhau chẳng hạn như bàn phím, máy in, modem, bộ điều
khiển đĩa, card âm thanh, bộ điều khiển cdrom, chuột... Mỗi nội ngoại vi này có một
bộ vi điều khiển bên trong nó để thực hiên chỉ một công việc, ví dụ bên trong mỗi con
chuột có một bộ vi điều khiển để thực hiện công việc tìm vị trí con trỏ và gửi nó đến
PC. Bảng 1liệt kê một số sản phẩm nhúng.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 44 -
3.1.3. Lựa chọn một bộ vi điều khiển
Có 4 bộ vi điều khiển 8 bít chính. Đó là 6811 của Motorola, 8051 của Intel, z8
của Xilog và Pic 16x của Microchip Technology. Mỗi một loại trên đều có tập lệnh và
thanh ghi riêng duy nhất, nên chúng đều không tương thích lẫn nhau. Cũng có những
bộ vi điều khiển 16 bit và 32 bit được sản xuất bởi các hãng chíp khác nhau. Với tất cả
những bộ vi điều khiển khác nhau như thế này thì lấy gì làm tiêu chuẩn lựa chọn đặt ra
là như thê nào. Có ba tiêu chuẩn để lựa chọn các bộ vi điều khiển là:
− Đáp ứng nhu cầu tính toán về mặt công suất tính toán và hiệu quả về mặt
giá thành.
Trong khi phân tích nhu cầu của một dự án dựa trên vi điều khiển, chúng ta
trước hết phải biết là bộ vi điều khiển nào là 8 bit, 16 bit hay 32 bit có thể đáp ứng tốt
nhất nhu cầu tính toán một cách hiệu quả nhất? Những tiêu chuẩn được đưa ra để cân
nhắc là:
+ Tốc độ: Tốc độ lớn nhất mà vi điều khiển hỗ trợ là bao nhiêu?
+ Kiểu đóng vỏ: Đó là kiểu 40 chân DIP hay QFP hay là kiểu đóng
vỏ khác (DIP – đóng vỏ theo 2 hàng chân. QFP là đóng vỏ vuông dẹt)? Đây là điều
quan trọng đối với yêu cầu về không gian, kiểu lắp ráp và tạo mẩu thử cho sản phẩm
cuối cùng.
+ Công suất tiên thụ: Điều này đặc biệt khắt khe đối với những sản
phẩm dùng pin, ắc quy.
+ Dung lượng bộ nhớ RAM, ROM trên chíp.
+ Số chân vào – ra và bộ định thời trên chíp.
+ Khả năng dễ dàng nâng cấp.
+ Giá thành cho một đơn vị: Điều này quan trọng quyết định giá
thành cuối cùng của sản phẩm mà một bộ vi điều khiển được sử dụng. Ví dụ có các bộ
vi điều khiển giá 50 cent trên đơn vị khi được mua 100.000 bộ một lúc.
+ Có sẵn các công cụ phát triển phần mềm chẳng hạn như các trình
biên dịch, trình hợp ngữ và gỡ rối.
− Tiêu chuẩn thứ hai lựa chọn một bộ vi điều khiển là khả năng phát triển
các sản phẩm xung quanh nó dễ dàng như thế nào? Các câu nhắc chủ yếu bao gồm khả
năng có sẵn trình hợp ngữ, gỡ rối, trình biên dịch ngôn ngữ C hiệu quả về mã nguồn,
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 45 -
trình mô phỏng, hỗ trợ kỹ thuật và khả năng sử dụng trong nhà và ngoài môi trường.
Trong nhiều trường hợp sự hỗ trợ của nhà cung cấp thứ ba ( nghĩa là nhà cung cấp
khác không phải hãng sản xuất chíp ) cho chíp cũng tốt như, nếu không được tốt hơn
sự hỗ trợ từ nhà sản xuất chíp.
− Nguồn các bộ vi điều khiển có sẵn và tin cậy.
Tiêu chuẩn thứ ba trong lựa chọn một bộ vi điều khiển là khả năng sẵn sàng
đáp ứng về số lượng trong hiện tại và tương lai. Đối với một số nhà thiết kế điều này
thậm chí còn quan trọng hơn cả hai tiêu chuẩn đầu tiên.
3.2. Tổng quan về MC68HC11E
Ngoại trừ trường hợp khác biệt nhỏ, đa số dòng chíp MC68HC11 là tương
đồng. Do tài liệu tham khảo MC68HC11E sẵn có, vì thế ta sẽ tìm hiểu hoạt động đặc
trưng, cách thức vận hành, hoạt động của họ chíp này tượng trưng cho cả dòng chíp
HC11.
3.2.1. Đặc trưng của họ vi điều khiển MC68HC11E
MC68HC11E là dòng vi điều khiển tích hợp cao, 8 bit của Motorola. Vi điều
khiển tích hợp một vi xử lý MC68HC11 với các thiết bị ngoại vi trên cùng một chíp.
Dòng HC11E cấu thành với nhiều loại bộ nhớ khác nhau như RAM, ROM hay
EPROM và EEPROM. Và với một số thiết bị khác hoạt động ở mức điện thế thấp.
HC11E chế tạo từ công nghệ bán dẫn – oxit – kim loại bù mật độ cao (HCMOS) cho
phép nó hoạt động với tần số từ 3MHz tới thế một chiều, mà tiêu thụ công suất không
đáng kể.
Sau đây là một số nét đặc trưng của họ HC11E:
− Vi xử lý MC68HC11 của Motorola và tập lệnh của nó
− Tiết kiệm công suất với hoạt động ở mode STOP và WAIT
− Sử dụng thiết bị làm việc với điện thế thấp
− Hỗ trợ 0, 256, 512 hoặc 768 bytes RAM , dữ liệu vẫn được duy trì khi
standby
− Hỗ trợ 0, 12, hoặc 20 Kbytes ROM hoặc EPROM
− Hỗ trợ 0, 512, 2048 Bytes EEPROM với khả năng bảo vệ khối dùng cho
chức năng bảo mật (2048 bytes với EEPROM ở bảng địa chỉ cơ sở trong HC811E2)
− Giao diện ngoại vi nối tiếp đồng bộ (SPI)
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 46 -
− 8 kênh dành cho bộ chuyển đổi A/D 8 bit
− 16 bit định thời hệ thống dành cho
+ Ba kênh bắt giữ tín hiệu lối vào (IC)
+ Bốn kênh so sánh lối ra (OC)
+ Một kênh có thể tuỳ chọn, như là kênh bắt giữ tín hiệu lối vào thứ tư,
hay là kênh so sánh tín hiệu lối ra thứ năm.
− Bộ cộng tích luỹ xung 8 bit
− Mạch ngắt thời gian thực
− Hệ thống giám sát sự hoạt động hợp lý của máy tính.
− 38 chân dùng cho cổng vào ra dữ liệu chung
+ 16 chân vào ra dữ liệu hai hướng
+ 11 chân dữ liệu vào
+ 11 chân dữ liệu ra
− Đóng gói
+ 52 chân gói palastic dạng PLCC
+ 52 chân gốm dạng CLCC
+ 52 chân palastic dạng TQFP, 10mmX10mm
+ 64 chân palastic dạng QFP
+ 48 chân palastic dạng DIP, MC68HC811E2
+ 56 chân palastic dạng SDIP
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 47 -
3.2.2. Cấu trúc khối MC68HC11E
Hình 18.Sơ đồ khối của MC68HC11E.
3.2.3. Chân và cổng vào ra của MC68HC11E
Họ vi điều khiển HC11E có thể đóng gói ở dạng: 52 chân PLCC, 52 chân
CLCC, 64 chân QFP, 48 chân dạng bản mỏng QFP, 56 chân SDIP và 48 chân dạng
DIP. Hầu hết các chân trong HC11E có hai chức năng được mô tả trong hình vẽ sau
(Hình 18).
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 48 -
Hình 19.Sắp xếp các chân với gói dạng 52 chân PLCC hay CLCC.
Hình 20. Gói 64 chân dạng QFP.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 49 -
Hình 21.Gói 52 chân dạng TQFP.
Hình22.Gói 56 chân dạng SDIP
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 50 -
Hình 23.Gói 48 chân dạng DIP.
So với các họ vi điều khiển khác như 8051 thì đóng gói và sơ đồ chân của
HC11 là khá phức tạp. Ở đây ta chỉ trình bày một số chân có chức năng quan trọng
trong hoạt động của vi điều khiển.
3.2.3.1. VDD và VSS
Nguồn cung cấp cho vi điều khiển thông qua chân VDD và VSS. VDD là chân
nguồn, VSS là chân nối đất. Nguồn cung cấp cho vi điều khiển hoạt động bình thường
là 5V. Các thiết bị (hoạt động với) thế thấp có dải điện áp hoạt động từ 3.0 tới 5.5V
hoặc từ 2.7 tới 5.5V. Nguồn đưa vào vi điều khiển phải ổn định một cách tương đối.
Nhưng vì một lý do nào đó, sự thăng giáng của nguồn sẽ làm xuất hiện các xung nhiễu
trên chân của vi điều khiển. Vì vậy nguồn trước khi đưa vào vi điều khiển cần thông
qua các mạch làm bằng. Cách thông dụng và hiệu quả nhất là dùng một con tụ đủ lớn
nối song song với nguồn cấp cho vi điều khiển. Giá trị của tụ tuỳ thuộc vào tải.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 51 -
3.2.3.2. RESET
RESET là chân điều khiển tín hiệu hai hướng. Nó được xem như là chân khởi
tạo trạng thái vi điều khiển khi nó được khởi động. Đồng thời nó cũng là chân tín hiệu
lối ra dùng để chỉ thị lỗi hệ thống do hệ thống giám sát hoạt động của vi điều khiển dò
được (COP). CPU phân biệt hai loại tín hiệu RESET. Tín hiệu RESET xuất phát từ
điều kiện bên ngoài hay ngay trong CPU (được điều khiển bởi chính CPU khi hệ thống
giám sát tìm thấy lỗi mà nó cho là nghiêm trọng). CPU phân biệt giữa điều kiện reset
nội và reset ngoại nhờ cảm biến được chân tín hiệu reset chuyển lên mức cao ngắn hơn
hai chu kỳ xung đồng hồ sau khi tín hiệu reset xuất hiện. Vì vậy tuyệt đối cấm không
được tuỳ tiện nối tụ và trở vào chân reset của vi điều khiển. Điều này nhằm tránh trễ
xảy ra trên chân reset và có thể dẫn đến những quyết định sai lầm của CPU. Thông
thường ta sử dụng bộ tạo tín hiệu reset MC3464 (hình vẽ 24).
Hình 24. Sơ đồ mạch reset ngoại.
3.2.3.3. Chân XTAL, EXTAL và lối ra E_Clock (E)
Hai chân XTAL, EXTAL cung cấp giao diện cho máy phát xung dao động
bằng thạch anh hoặc bộ dao động có cấu trúc CMOS tương ứng dùng để điểu khiển
mạch phát xung đồng hồ có trong vi điều khiển. Tần số của các máy phát ngoài phải
cao gấp bốn lần tần số xung đồng hồ mong muốn. Thông thường chân XTAL ngắt ra
khi có một bộ dao động CMOS nối vào chân EXTAL. Tuy nhiên để giảm nhiễu ở tần
số rađiô (RFI) ta thường nối vào chân XTAL con trở có giá trị từ 10 KΩ tới 100KΩ.
Chân lối ra XTAL chỉ được nối với một bộ dao động thạch anh.
E là chân lối ra của bộ dao động nội trong vi điều khiển. Tín hiệu này dùng để
chuẩn thời gian. Tần số lối ra chân E bằng ¼ tần số lối vào ở chân XTAL, EXTAL.
Khi xung đồng hồ E ở mức thấp, một mạch vòng xử lý nội sẽ diễn ra. Khi nó ở mức
cao, dữ liệu được truy cập. Tất cả các xung đồng hồ sẽ ngừng lại khi vi điều khiển ở
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 52 -
trạng thái STOP. Nhằm tránh phát sinh RFI, các thiết bị nối vào chân E sẽ ngắt khi vi
điều khiển làm việc ở chế độ đơn.
3.2.3.4. Yêu cầu ngắt và che ngắt ( IRQ and XIRQ/VPPE)
Chân lối vào IRQ là chân nhận tín hiệu ngắt không đồng bộ. Ta có thể chọn
chế độ ngắt theo sườn âm của xung, hay ngắt theo biên độ (biên độ âm) của xung
(dùng thanh ghi tuỳ chon). Tín hiệu ngắt khi reset luôn là chọn theo mức biên độ xung.
Khi sử dụng tín hiệu ngắt theo mức biên độ xung, ta thường nối một điện trở 4.7k từ
chân IRQ tới nguồn.
Chân XIRQ là chân nhân tín hiệu ngắt không thể che vào vi điều khiển ngay
sau chân reset được khởi tạo. Trong quá trình reset, bit X trong thanh ghi điều kiện có
thể được đặt và tất cả các ngắt đều bị cấm cho tới khi phần mềm điều khiển vi điều
khiển cho phép nó hoạt động. Vì XIRQ hoạt động theo mức biên độ xung, nên ta có
thể nối XIRQ lên nguồn thông qua một con trở. Thông thường XIRQ chọn để phát
hiện lỗi nguồn.
VPPE là chân lối vào cung cấp nguồn 12V cần thiết cho trường hợp lập trình
với EPROM/OTPROM. Nếu thiết bị không dùng EPROM/OTPROM thì nó chỉ có
chức năng ngắt.
3.2.3.5. STRA/AS và STRB/R/W
Chân STRA/AS phân làm hai chức năng phụ thuộc vào mode hoạt động của vi
điều khiển. Trong chế độ đơn, STRA thực hiện chức năng bắt tín hiệu vào. Trong chế
độ hợp kênh mở rộng, AS cung cấp chức năng đồng bộ địa chỉ.
Chân đồng bộ B hay đọc/viết (STRB/R/W) hoạt động như chân tín hiệu đồng
bộ lối ra hay chân chỉ thỉ hướng dữ liệu trên bus. Trong chế độ hoạt động đơn, STRB
hoạt động như chân đồng bộ tín hiệu với các thiết bị ngoại vi song song. Trong chế độ
hợp kênh mở rộng, R/W sử dụng để chỉ thị hướng dữ liệu được truyền ở bus ngoại vi.
Chân R/W ở mức thấp báo rằng dữ liệu đang được viết ra thiết bị bên ngoài, mức cao
có nghĩa là vi điều khiển đang đọc thông tin.
3.2.3.6. MODA, MODB chân điều khiển chọn mode
Trong khi reset, với hai chân tín hiệu MODA và MODB ta có 4 chế độ làm
việc cho vi điều khiển. Đó là các mode, single mode, expanded mode, bootstrap mode
và test mode. Single mode và expanded mode là hai mode làm việc bình thường của vi
điều khiển. Sự khác nhau giữa chúng là ở single mode ta chỉ truy cập dữ liệu từ bộ nhớ
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 53 -
trong như RAM, ROM còn ở expanded mode ta có thể truy cập dữ liệu từ bộ nhớ của
các thiết bị ngoại vi (bộ nhớ ngoài). Tương ứng với mỗi phương thức làm việc bình
thường ta có 1 mode làm việc đặc biệt: bootstrapmode – single mode; test mode –
expanded mode. Sự khác nhau cơ bản là chúng có bản đồ ô nhớ khác nhau và phương
thức truy cập bộ nhớ khác nhau.
3.2.3.7. VRL và VRH
Đây là hai chân cung cấp thế chuẩn cho bộ chuyển đổi A/D. VRL chuẩn thế
thấp ( thường là 0V). VRH chuẩn thế cao. Để bộ chuyển đổi hoạt động bình thường
VRH phải lớn hơn 3V, và VRH, VRL trong dải VSS, VDD.
3.2.3.8. Các cổng tín hiệu
Các chân cổng tín hiệu có chức năng khác nhau với các mode hoạt động khác
nhau.
Các chức năng của chân trong cổng A, D, E không phụ thuộc vào mode hoạt
động. Cổng B, C ngược lại, chịu ảnh hưởng của chế độ làm việc của vi điều khiển. Chi
tiết chức năng của các chân xem trong bảng và được mô tả sau.
− Cổng A
Trong mọi chế độ hoạt động, cổng A luôn được dùng để cấu hình cho ba bộ
định thời bắt giữ tín hiệu lối vào (IC) và bốn bộ định thời so sánh tín hiệu lối ra (OC).
Chân còn lại có thể cấu hình theo cả hai hướng như là bộ định thời bắt giữ tín hiệu lối
vào thứ tư hoặc bộ định thời so sánh giữ liệu lối ra thứ năm. Nếu bất kỳ chân nào của
cổng A không dùng để cấu hình cho các bộ định thời đều có thể sử dụng làm chân tín
hiệu vào ra phổ thông. Chân PA7 và chân PA3 dùng để thiết lập hướng dữ liệu là vào
hay ra. Riêng hướng của hai bít PA7 và PA3 được thiết lập bởi hai bít DDAR7 và
DDAR3 của thanh ghi PACTL (pulse accumulator control – thanh ghi điều khiển tích
luỹ xung). Các chân còn lại được cố định là chân dữ liệu vào hay chân dữ liệu ra.
PA7 có chức năng là chân vào/ra phổ thông, đồng thời nó cũng là chân so sánh
lối ra định thời OC1. PA7 được lấy là lối vào bộ tích luỹ xung, ngay cả khi chúng đang
thực hiện các chức năng trên.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 54 -
Bảng 2.Chức năng của các chân tín hiệu ở chế độ hoạt động khác nhau.
PA[6:4] chức năng là chân lối ra dùng chung, và là chân bắt giữ lối vào các bộ
định thời hoặc là chân so sánh lối ra của bộ định thời 2 - 4. PA[6:4] được điều khiển
bởi OC1.
PA3 là chân tín hiệu vào ra hai hướng, đồng thời cũng định dạng như là chân
bắt giữ lối vào bộ định thời số 4 hay là chân so sánh lối ra bộ định thời số 5.
PA[0:2] dành cho chân lối vào dùng chung và chân bắt giữ lối vào bộ định
thời [1:3].
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 55 -
− Cổng B
Trong chế độ hoạt động đơn chíp, tất cả các chân cổng B là chân lối ra dùng
chung.
Trong chế độ hoạt động hợp kênh mở rộng, tất cả các chân của cổng B được
xem như là bye địa chỉ cao của tín hiệu lối ra. Trong suốt chu kỳ xung đồng hồ, chân
[7:0] được xem là bit [15:8] của địa chỉ bus lối ra.Thanh ghi PORTB được xem như là
địa chỉ ngoại vi ở chế độ mở rộng.
− Cổng C
Trong chế độ đơn chíp, tất cả chân cổng C có chức năng như là chân vào/ra dữ
liệu chung. Cổng C giữ như là chân vào dữ liệu nhờ thanh ghi PORTLC và chân
STRA đặt ở chế độ vào dữ liệu.
Trong chế độ hợp kênh mở rộng, toàn bộ chân của cổng C xem như là một
phần của dữ liệu/địa chỉ hợp kênh. Trong chu kỳ xung đồng hồ, các chân [7:0] của
cổng C xem như là địa chỉ [7:0] địa chỉ lối ra. Hoặc là chân vào/ra dữ liệu hai hướng.
Hướng của dữ liệu chọn bởi chân tín hiệu R/W.
− Cổng D
Chân PD[5:0] có thể được sử dụng như là chân vào ra tín hiệu chung. Tuy
nhiên nhưng chân này cũng được dùng truyền tín hiệu cho các thiết bị giao diện truyền
thông nối tiếp (SCI), và các thiết bị giao diện ngoại vi nối tiếp (SPI).
Chân PD0 là chân nhận dữ liệu vào (RxD) cho SCI.
Chân PD1 là chân truyền dữ liệu ra (TxD) cho SCI.
PD[5:2] dùng cho giao diện ngoai vi nối tiếp (SPI). PD2 là chân tín hiệu ra.
PD3 là chân tín hiệu vào. PD4 là chân tín hiệu xung đồng hồ. PD5 là chân chọn chế độ
(vào/ra).
− Cổng E
Cổng E là lối vào phổ thông hoặc là lối vào bộ A/D. Nếu cần chuyển đổi chính
xác, tuyệt đối không truy cập vào cổng trong khi đang lấy mẫu, nhằm tránh những
nhiễu loạn không cần thiết.
3.2.4. Bộ vi xử lý trung tâm
Phần này chúng ta thảo luận về kiến trúc, kiểu dữ liệu, chỉ dẫn và các mode
địa chỉ được định nghĩa trên CPU MC68HC11.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 56 -
CPU được thiết kế giao tiếp với thiết bị ngoại vi, vào/ra dữ liệu, lượng bộ nhớ
với 64kbytes bản đồ nhớ. Điều này có nghĩa là cổng vào ra cũng được xem như là ô
nhớ trong bản đồ nhớ, và không có sự phân biệt nào với ô nhớ thực thụ. Kiến trúc này
cho phép truy cập tới bộ nhớ ngoài mà không gây thêm lượng thời gian bất lợi nào.
Sau đây chúng ta đi vào một số chi tiêt.
3.2.4.1. Các thanh ghi của CPU
Thanh ghi của MC68HC11 CPU là một bộ phận cấu thành từ bên trong và nó
không được đưa vào bản đồ nhớ. Nó có 7 thanh ghi phổ thông và một thanh ghi điều
kiện (hinh).
Hình 25.Sơ đồ các thanh ghi của MC68HC11 CPU.
Như hình vẽ ta thấy, kiến trúc của nó gồm ba thanh ghi tích luỹ A, B và D.
Thanh ghi tích luỹ A, B là thanh ghi tích luỹ 8 bit. Tuy nhiên nếu cần ta có thể sử dụng
hai thanh ghi như một thanh ghi 16 bit tương tự thanh ghi D.
Các thanh ghi IX, IY là thanh ghi chỉ số. Chúng đưa cho ta mọt giá trị 16 bit
khi cộng với giá trị offset 8 bit sẽ được giá trị đầy đủ của địa chỉ các ô nhớ.
SP là thanh ghi chỉ số stack, nó tự động đánh số bởi chương trình.
PC thanh ghi số đếm chương trình 16 bit. Ngay sau khi reset PC se có giá trị
tại khởi đầu tuỳ thuộc vào mode hoạt động của vi điều khiển.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 57 -
Thanh ghi còn lại mà ta chưa nhắc là thanh ghi điều kiện (CCR), gồm có 8 bit
điều kiên. Chi tiết về các thanh ghi xin xem tài liệu tham khảo.
3.2.4.2. Kiểu dữ liệu dùng trong CPU
MC68HC11 CPU hỗ trợ những kiểu dữ liệu sau:
− Dữ liệu dưới dạng bit
− Số nguyên 8 bit hay 16 bit không dấu và có dấu
− 16 bit số phân số không dấu
Thông thường ta sử dụng kiểu byte 8 bit và với kiểu dữ liệu đó ta không cần
yêu cầu đặc biệt nào khi sử dụng (vi HC11 là vi xử lý 8 bit).
3.2.4.3. Mã lệnh và toán tử
Mã lệnh trong họ vi xử lý HC11 mã hoá 8 bit. Mỗi mã lệnh có cách dùng riêng
với các mode hoạt động khác của vi điều khiển. HC11 CPU có khoảng 256 mã lệnh.
Một dòng lệnh đầy đủ gồm có một tiền tố (prebyte), mã lệnh và có thể có không, một,
hai, ba toán tử. Toán tư có chúa thông tin mà CPU cần thực hiện tính toán. Một dòng
lênh đầy đủ có thể có từ một tới năm byte.
3.2.4.4. Các mode địa chỉ
Có 6 mode địa chỉ dùng để truy cập vào bộ nhớ: tức thời (immediately), trực
tiếp (direct), mở rộng (extended), chỉ dẫn (indexed), cảm ứng (inherent) và quan hệ
(relative). Nói chung sáu mode địa chỉ này rất gần với sáu mode truy cập địa chỉ của
8086.
3.2.5. Kết luận
Nói chung, kiến trúc của vi điều khiển MC68HC11 khá là phức tạp. Trong
khuôn khổ một đề tài luân văn là không thể nói hết được kiến trúc của nó. Trên đây em
chỉ nêu ra một số kiến thức cơ bản về họ vi điều khiển này để có cái nhìn tổng quan về
nó. Nhìn chung hoạt động của nó có nhiều nét tương đồng với hệ vi xử lý 8086, điều
này là một thuận lợi.
3.3. Lựa chọn vi điều khiển MC68HC11 cho bộ cảm biến
Ta dùng vi điều khiển HC11 cho đề tài nhờ những ưu điểm sau:
− HC11 hỗ trợ tới 8 cổng ADC 8 bit.
− Hỗ trợ các giao diện truyền thông nối tiếp và giao diện ngoại vi nối tiếp.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 58 -
− Các chế độ hoạt động tiết kiệm năng lượng.
− Khả năng tự giám sát.
− Thiết bị nhớ đa dạng, và có thể truy cập vào bộ nhớ ngoài ở mode mở
rộng.
− Dải tần làm việc tương ứng với dải tần của cảm biến tần số.
− Phần mềm ứng dụng có sẵn, do Pháp tài trợ cho trường.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 59 -
Chương 4
XÂY DỰNG THỰC TẾ HỆ THỐNG THU THẬP DỮ LIỆU
NHIỀU KÊNH, THÔNG MINH DÙNG CẢM BIẾN ÁNH
SÁNG/TẦN SỐ DỰA TRÊN HỌ VI ĐIỀU KHIỂN MC68HC11
Trong các chương trước, chúng ta đã cùng thảo luận về cách thức xây dựng
một hệ thống thu thập dữ liệu thông minh. Chương này tôi xin trình bày những kêt quả
thực tế của tôi trong quá trình xây dựng một hệ thống như vậy. Tuy nhiên do trình độ
và thời gian hạn chế, trong quá trình xây dựng thực tế người làm gặp nhiều khó khăn
mà chưa khắc phục được. Những khó khăn đó không được trình bày ở đây.
4.1. Mạch điện hỗ trợ chức năng tính toán của HC11
4.1.1. Thiết kế mạch điện (layout)
Hình 26. Bảng mạch MC68HC11.
Bảng mạch trên được các kỹ sư của công ty Motorola thiết kế. Tuy nhiên bảng
mạch thực tế hiện có đang sử dụng cho các mục đích thí nghiệm là của đại học CNAM
của Pháp tài trợ cho trường.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 60 -
4.1.2. Sơ đồ khối bảng mạch
Hình 27. Sơ đồ khối của EVB.
− LATCH: Bộ chốt.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 61 -
− MCU: Vi điều khiển.
− User or monitor EPROM: Người dùng hoặc EPROM giám sát.
− PRU: Đơn vị thay thế cổng.
− RS232C drives and receiver: Bộ điều khiển và bộ nhậnRS232C.
− TxD, RxD: Chân phát tín hiệu và chân nhận tín hiệu nối tiếp.
4.1.3. Miêu tả chung
Vi điều khiển MC68HC11 là loại vi điều khiển đơn tiên tiến có tích hợp bộ
nhớ trong và các thiết bị ngoại vi. Để phát huy khả năng của vi điều khiển, EVB
(Evualation Board - bảng mạch hỗ trợ cho chức năng tính toán của MC68HC11 -> vì
chưa tìm được thuật ngữ tiếng Việt ngắn gọn tương đương nên ta sẽ dùng thuật ngữ tiêng Anh
dưới dạng viết tắt) được thiết kế theo một chương trình giám sát và gỡ rối có tên gọi
BUFFALO (Bit User Fast Friendly Aid to Logical Operations). Chương trình giám sát
này chứa trong EPROM (bộ nhớ ngoài).
EVB cung cấp các công cụ, thiết bị giá rẻ đủ cho chức năng tính toán và gỡ rối
của vi điều khiển MC68HC11. EVB không hỗ trợ cho loại vi điều khiển có tốc độ tính
toán linh hoạt và mạnh hơn. Nó có thể hoạt động đồng thời cả hai mode: gỡ rối và tính
toán.
Mode hoạt động đầu tiên cho phép người dùng gỡ rối dưới sự điều khiển của
chương trình giám sát BUFFALO. Mã sử dụng là assembler chứa trên EVB hoặc có
trong máy tính host và đựơc nạp vào bộ nhớ RAM của EVB. Mode hoạt động thứ hai
cho phép người dùng thi hành nhiệm vụ tính toán của mình với chương trình được nạp
bộ nhớ của vi điều khiển. EVB có thể thi hành ở mode đơn chíp hay mode mở rộng
trong toàn bộ thời gian làm việc của nó (xem chương 3).
Toàn bộ hoạt động điều khiển EVB, được lưu vào trong EPROM với sự trợ
giúp của các thiết bị tương tác đầu cuối. Giao diện của hệ thống thi hành cung cấp bởi
vi điều khiển và PRU (port replacement unit- đơn vị thay thế cổng ‘->MC68HC24‘). Chuẩn
RS232C dùng cho truyền dữ liệu và giao tiếp giữa máy tính và EVB. Vi điều khiển
cung cấp giao diện truyền thông nối tiếp có tốc độ 9600 baud .
EVB cần sử dụng nguồn cung cấp +5, +12, -12 Vdc và một đầu cuối tương
thích với chuẩn RS232C. Bộ RS232C tương thích với máy tính host sử dụng chuẩn ghi
nối tiếp của Motorola (Motorola S-records) với sự trợ giúp của chương trình giám sát
BUFFALO. Để có thêm thông tin xin xem tài liệu tham khảo.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 62 -
4.1.4. Thiết bị trong EVB, và các thông số
Bảng 3. Một vài thông số và thiết bị trong MC68HC11EVB.
Thiết bị, thông số Đặc tính
MCU MC68HC11AFN
PRU MC68HC24FN
ACIA MC68B50
Cổng vào ra:
Đầu cuối
Máy tính host
MCU mở rộng
Tương thích RS232C
Tương thích RS232C
Tương thích HCMOS –TTL
Dải nhiệt độ
Hoạt động
Lưu trữ
0 tới 50 0C
- 40 tới +85 0C
Độ ẩm 0 tới 900
Công suất yêu cầu 0.5A với nguồn +5Vdc (max)
0.1A với nguồn +12Vdc (max)
0.1A với nguồn -12Vdc (max)
Kích thước
Chiều rộng
Chiều dài
17.8 cm
11.75 cm
Bảng 4. Bảng liệt kê một vài thiết bị ngoại vi.
Thiết bị ngoài Kiểu/ loại thông thường
Nguồn một chiều 5, 12, -12 Vdc Mẫu TAA 16W
Đầu cuối ( tương thích RS232C) EXORterm
Máy tính host (tương thích RS232C) EXORciser ( bất kỳ máy tính host nào
có hỗ trợ phần mềm MC68HC11
assembler)
Cable RS232
Cable cho cổng vào ra mở rộng
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 63 -
4.2. Giới thiệu về C-spy
4.2.1. Tổng quan
Với trình gỡ rối BUFFALO dựa trên ngôn ngữ assembler chưa phải là ngôn
ngữ bậc cao. Muốn viết một chương trình điều khiển hoạt động của HC11 trên ngôn
ngữ assem quả thực là rất khó khăn và có qua nhiều việc càn làm. Ví dụ như cần viết
chương trình giao tiếp giữa máy tính host và EVB khi nạp chương trình vào
EPROM,… Trong khi đó C-spy của IAR cung cấp cho ta ngôn ngữ lập trình bậc cao,
chạy trên nền Windows với rất nhiều hàm sẵn có trong thư viện. Các thao tác nhận
phần cứng, thiết bị và điều khiển tương tác giữa các thiết bị được thực hiện tự động
hay đơn giản qua một thao tác nhấp chuột. Ngoài ra C-spy còn cung cấp hệ soạn thảo
chương trình nguồn với chức năng tự gỡ rối. C-spy được thiết kế làm việc với cả hai
ngôn ngữ C và assembler. Người dùng có thể chuyển đổi qua lại giữa hai mức chương
trình nguồn khi cần thiết. Điều không cần bàn cãi là với chương trình C người dùng
không tốn nhiều công sức xây dựng chương trình điều khiển thực hiện một mục đích
nào đó. Đặc biệt với các bài toán có cấu trúc cơ sổ dữ liệu phức tạp thì dung chương
trình soạn thảo C có ưu thế tuyệt đối. Tuy nhiên chương trình assembler cũng có ưu
điểm khi cần điều khiển phần cứng một cách chính xác. Do đó ta cần viết bằng ngôn
ngữ assembler với các chương trình điều khiển quan trọng. Chu trình xây dựng và phát
triển một ứng dụng dựa trên hệ C-spy của IAR như trong hình vẽ.
4.2.2. Tiến hành cài đặt và sử dụng
4.2.2.1. Cài đặt
Cài đặt hệ thống C-spy trên nền Windows không có gì đặc biệt. Tất cả các
bước đều thực hiện trên giao diện đồ hoạ và được thực hiện một cách đơn giản. C-spy
có ba phiên bản cơ bản : simulator, emulator và rom-monitor. Mỗi phiên bản có một
đặc trưng riêng biệt.
1) Phiên bản simulator
Đây là phiên bản mô phỏng chức năng của bộ vi xử lý bằng phần mềm chương
trình này có thể kiểm tra trước khi bất kì phần cứng nào được thực hiện vì vậy không
yêu cầu phần cứng vì thế giá thành thấp nhất và là giải pháp cho nhiều ứng dụng mô
phỏng.
2) Phiên bản emulator
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 64 -
Phiên bản emulator của C-spy cung cấp toàn bộ công cụ điều khiển trong
mạch chính qua cổng nối tiếp hoặc song song, C-spy emulator sử dụng những tính chất
phần cứng, như breakpoint logic và memory inspection cho phép ứng dụng để thực
hiện trong thời gian thực và trong môi trường thực.
3) Phiên bản Rom-monitor
Bộ Rom-monitor của C-spy là công cụ gỡ rối đầy hiệu lực để thực hiện những
ứng dụng, chương trình này diễn giải C-spy làm việc như thế nào và đưa ra cái nhìn
toàn diện về C-spy và đặc tính của nó.
Hình 28. Lưu đồ quá trình xây dựng một ứng dụng.
4.2.2.2. Sử dụng
Phiên bản được cài đặt là phiên bản emulator. Sau khi cài đặt lên ổ đĩa cứng và
tạo shortcut trên màn hình, nói chung chương trình sẽ sử dụng được ngay sau khi reset
lại máy tính. Cách đơn giản nhất để khởi động chương trình ứng dụng là:
Soạn thảo file nguồn.
Dịch
Liên kết flie object
Biên dịch file
Liên kết file
object với dự
đoán hoàn chỉnh
Start
Gỡ rối
với C-
spy
Đưa vào PROM
Có lỗi
Ok
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 65 -
− Kích đúp chuột lên biểu tượng shortcut trên màn hình.
− Kích phải chuột và chọn open lên biểu tượng shortcut trên màn hình.
Ngay sau đó của sổ làm việc sẽ hiên ra (hình vẽ).
Hình 29. Cửa sổ giao diện chương trình.
− Để vào soạn thảo chương trình nguồn ta chọn Startup -> Testes Carter
(hình vẽ).
Hình 30. Lựa chọn soạn thảo chương trình nguồn.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 66 -
Nhập mật khẩu để vào chương trình (hình vẽ 31)
Hình31. Hỏi mật khẩu khi vào chương trình soạn thảo.
Khi mật khẩu đã được xác nhận, cửa sổ giao diện sẽ hiện lên (hình vẽ 32).
Hình 32. Cửa sổ giao diện của chương trình.
Kích đúp chuột lên một chương trình nguồn, ví dụ chương trình đo tần số, cửa
sổ giao diện soạn thảo hiện ra. Kích đúp vào file frequencemetre để chỉnh sửa (nếu
cần).
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 67 -
Hình 33. Giao diện chương trình soạn thảo.
Hình 34. Cửa sổ soạn thảo.
Để chạy thử một chương trình, nhấn vào debug (hình 34). Cửa sổ giao diện
mới hiện ra. Vào control chon realtime, sau đo chọn run (hình 35). Kêt quả của phép
đo sẽ hiện lên màn hình tinh thể lỏng.
Debug
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 68 -
Hình 35. Chạy chương trình ở chế độ debug.
4.3. Chương trình điều khiển và kết quả thực nghiệm
Thư mục cài đặt trên ổ cứng: c:\user\hc11\hc11_tool\wbench\6811\inc chứa
hàm vào ra cơ sở của chương trình, chương trình đo tần số với một số hàm thư viên
được viết như sau:
− Chương trình đo tần số
#include
#include "afficheur.h"
#include "afficheur_sup.h"
#include "registres_hc11.h"
extern char freq(unsigned int,long *freq_q1632,char *unite);
extern char freq_periode(long *freq_q1632, char *unite);
extern void valid_it(void);
extern void affich_q1632(long,char *);
extern void valid_xirq(void);
char tab_ini_aff[] = {0x38,0x0D,0x01,0x06,0x02,0x80,00};
Run
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 69 -
void main(void)
{
long freq1632; char unite[20];char flag;
unsigned int tetams = 1000; char flag_methode = 0;
config_aff(tab_ini_aff);
/* PACTL = PACTL | 0x50;
valid_it();
while(1)
{
if(flag_methode == 0)flag = freq(tetams,&freq1632,unite);
else flag = freq_periode(&freq1632,unite);
efface_ligne();
affich_q1632(freq1632,unite);
if ( (flag_methode == 0)&& (flag ==-1) ){efface_ligne();
outchaine("Debordement +"); }
if ( (flag_methode == 1)&& (flag !=1) ){ efface_ligne();
outchaine("Debordement -");}
if( (flag_methode ==0) && (freq1632 < 65536.0*0.373 ) )
flag_methode = 1;
if( (flag_methode ==1) && (freq1632 > 353*65536 )
)flag_methode = 0;
/* change_ligne();
efface_ligne();
outinteger(flag);
change_ligne(); */
if(flag_methode ==1)tempo(1000);
}
}
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 70 -
char freq(unsigned int porte, long *f, char *unite)
{
unsigned long N;float ff;
unsigned int k;
unsigned int PACNTH;
char flag=1;
static char flagini = 0;
if (flagini ==0) { PACTL = PACTL | 0x50; flagini = 1; }
TOC1 = TCNT + 125;
TFLG1 = 0x80;
TFLG2 = 0x20;
PACNT = 0;
PACNTH = 0;
for(k=0;k<porte;k++)
{
while( (TFLG1&0x80)==0)if( (TFLG2 & 0x20) !=0 ) {
PACNTH++; TFLG2=0x20;}
TFLG1 = 0x80;
TOC1 = TOC1+125;
}
N = (long)256*PACNTH+PACNT;
ff = (float)N/porte;
*f = (long)(65536.0*ff);
strcpy(unite," KHz");
change_ligne();
efface_ligne();
outinteger(PACNTH);
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 71 -
change_ligne();
if(ff>750.1)flag = -1;
return(flag);
}
char freq_periode(long * f, char *unite)
{
unsigned int N1,N2; float ff;long N;char flag = 1;
static char flagini = 0;
;
if(flagini==0){ TCTL2 = TCTL2 | 0x01; flagini = 1;}
TFLG1 = 0x01;
while( (TFLG1 & 0x01) == 0);
TFLG1 = 0x81;
TFLG2 = 0x80;
TOC1 = TCNT + 65535;
N1 = TIC3;
while( (TFLG1 & 0x01) == 0);
N2 = TIC3;
N = N2 - N1;
if (N < 0)N = N+65536;
ff = 65536.0*125000.0/N;
*f=(long)ff;
strcpy(unite," Hz" );
if( (TFLG1 & 0x80)!=0) flag = -1;
return(flag);
}
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 72 -
− Thư viên vào ra chuẩn stdio
/* - STDIO.H - */
#ifndef _STDIO_INCLUDED
#define _STDIO_INCLUDED
#ifndef NULL
#define NULL (void *) 0
#endif
#ifndef EOF
#define EOF (-1)
#endif
#ifndef size_t
#if sizeof((char*)0 - (char*)0) <= sizeof(int)
#define size_t unsigned int
#else
#define size_t unsigned long
#endif
#endif
/* ===
#if __TID__ & 0x8000
#pragma function=intrinsic(0)
#endif
=== */
#ifndef MEMORY_ATTRIBUTE
#define MEMORY_ATTRIBUTE
#endif
MEMORY_ATTRIBUTE int puts(const char *__s);
MEMORY_ATTRIBUTE int putchar(int __value);
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 73 -
MEMORY_ATTRIBUTE int getchar(void);
MEMORY_ATTRIBUTE int sprintf(char *__s,const char
*__format,...);
MEMORY_ATTRIBUTE int printf(const char *__format,...);
MEMORY_ATTRIBUTE int scanf(const char *__format,...);
MEMORY_ATTRIBUTE int sscanf(const char *__s, const
char *__format,...);
MEMORY_ATTRIBUTE char *gets(char *__s);
#if __TID__ & 0x8000
#pragma function=default
#endif
#endif
− Định nghĩa thanh ghi (registres_hc11.h)
#include
#define OPTION *(char*)0x1039
#define ADCTL *(char*)0x1030
#define ADR2 *(char*)0x1032
#define ADR3 *(char*)0x1033
#define PORTC *(char*)0x1003
#define DDRC *(char*)0x1007
#define PIOC *(char*)0x1002
#define TMSK1 *(char*)0x1022
#define TMSK2 *(char*)0x1024
#define TFLG1 *(char*)0x1023
#define TFLG2 *(char*)0x1025
#define TCNT *(unsigned int*) 0x100E
#define TOC1 *(unsigned int*) 0x1016
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 74 -
#define TOC2 *(unsigned int*) 0x1018
#define TOC3 *(unsigned int*) 0x101A
#define TOC4 *(unsigned int*) 0x101C
#define TIC1 *(unsigned int*)0x1010
#define TIC2 *(unsigned int*)0x1012
#define TIC3 *(unsigned int*)0x1014
#define SCDR *(char*)0x102F
#define SCCR1 *(char*)0x102C
#define SCCR2 *(char*)0x102D
#define SCSR *(char*)0x102E
#define BAUD *(char*)0x102B
#define TCTL2 *(char*)0x1021
#define PACTL *(char*)0x1026
#define PACNT *(unsigned char*)0x1027
− Afficheur.h
extern void valid_it(void);
extern void config_aff(char *);
extern void outchaine(char *);
extern void outinteger(int);
extern void outhex16(int);
extern void change_ligne(void);
extern void efface_ligne(void);
extern void curseur(char);
extern void virgule(void);
extern void espace(void);
extern void tempo(unsigned int ms);
extern void putch(char);
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 75 -
− afficheur_sup.h
extern void ecrire_ligne(char ligne, char *texte);
extern void ecrire_entier(char ligne, int n);
extern void ecrire_q1632(char ligne, long q1632, char *texte);
extern void efface(char ligne);
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 76 -
Kết luận
Trên cơ sở tìm hiểu lý thuyết, các kết quả thực nghiệm khoá luận trình bày
cách thức xây dựng một hệ thống thu thập dữ liệu với sự trợ giúp của máy tính.Trong
thời gian nghiên cứu hạn hẹp, em đã thu được một số kết quả sau:
Về mặt lý thuyết:
− Tìm hiểu nguyên lý cảm biến ánh sáng, ưu điểm của cảm biến ánh sáng
tần số.
− Cấu trúc hệ thống thu thập dữ liệu nhờ cảm biến với sự trợ giúp của máy
tính.
− Cấu trúc một hệ cảm biến thông minh, xử lý tín hiệu trong cảm biến thông
minh.
− Cấu trúc họ vi điều khiển MC68HC11. Lập trình với họ vi điều khiển
MC68HC11.
Về mặt thực nghiệm:
− Tự thiết kế được một mạch cảm biến ánh sáng có lối ra tần số trong
khoảng 5Khz tới 30Khz.
− Tìm hiểu cấu trúc của mạch hỗ trợ tính toán dành cho MC68HC11.
− Tìm hiểu, xây dựng chương trình điểu khiển hiện thị kết quả đo tần số
sang màn hình tinh thể lỏng trên hệ chương trình C-spy dành cho họ vi điều khiển
HC11.
Mặc dù đã hết sức cố gắng, song do thời gian thực hiện khoá luận không
nhiều, kiến thức còn hạn chế nên bản khoá luận không tránh khỏi những sai sót. Em
kính mong nhận được sự thông cảm cùng sự chỉ bảo và đóng góp ý kiến của thầy cô và
bạn bè.
Đại học Công Nghệ - Đại học Quốc Gia Hà Nội
Lâm Hữu Thực Khoá luận tốt nghiệp
- 77 -
Tài liệu tham khảo
1) Kỹ thuật mạch điện tử - Phạm Minh Hà.
2) Giáo trình thực tập kỹ thuật số - Nguyễn Khang Cường.
3) Giáo trình cảm biến - Phan Quốc Phô
- Nguyễn Đức Chiến
4) 68HC11 C Complier Programming Guide for Motorola’s 68HC11
Microcontroller Family
- IAR systems
5) Data acquisition and signal processing for smart sensor
- Nikolay V.Kirianaki
- Sergey Y.Yurish
- Nestor O.Shpak
- Vadim P.Deynega.
6) HC11 E Series Technical Data
- Motorola
7) MC68HC11EVB Evaluation Board User’s Manual
- Motorola
Các file đính kèm theo tài liệu này:
- Nghiên cứu và thiết kế hệ thống thu nhập và xử lý dữ liệu nhiều kênh, thông minh trên cảm biến ánh sáng-tần số dùng MC68HC11.pdf