<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s121216211</article-id>
<article-id pub-id-type="publisher-id">sensors-12-16211</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>An Efficient Micro Control Unit with a Reconfigurable Filter Design for Wireless Body Sensor Networks (WBSNs)</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Chen</surname><given-names>Chiung-An</given-names></name><xref ref-type="aff" rid="af1-sensors-12-16211"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Chen</surname><given-names>Shih-Lun</given-names></name><xref ref-type="aff" rid="af2-sensors-12-16211"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Huang</surname><given-names>Hong-Yi</given-names></name><xref ref-type="aff" rid="af3-sensors-12-16211"><sup>3</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Luo</surname><given-names>Ching-Hsing</given-names></name><xref ref-type="aff" rid="af1-sensors-12-16211"><sup>1</sup></xref><xref ref-type="corresp" rid="c1-sensors-12-16211"><sup>*</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-12-16211">
<label>1</label>Instrumentation Chip Group, Department of Electric Engineering, National Cheng Kung University, Tainan 701, Taiwan; E-Mail: <email>n2895159@mail.ncku.edu.tw</email></aff>
<aff id="af2-sensors-12-16211">
<label>2</label>Department of Electronic Engineering, Chung Yuan Christian University, Chung Li City 320, Taiwan; E-Mail: <email>chrischen@cycu.edu.tw</email></aff>
<aff id="af3-sensors-12-16211">
<label>3</label>Graduate Institute of Electrical Engineering, National Taipei University, Taipei 10478, Taiwan; E-Mail: <email>hyhuang@mail.ntpu.edu.tw</email></aff>
<author-notes>
<corresp id="c1-sensors-12-16211">
<label>*</label>Author to whom correspondence should be addressed; E-Mail: <email>robinluo@mail.ncku.edu.tw</email>; Tel.: +886-27-575-75 (ext. 62375); Fax: +886-23-664-33.</corresp></author-notes>
<pub-date pub-type="collection">
<month>12</month>
<year>2012</year></pub-date>
<pub-date pub-type="epub">
<day>22</day>
<month>11</month>
<year>2012</year></pub-date>
<volume>12</volume>
<issue>12</issue>
<fpage>16211</fpage>
<lpage>16227</lpage>
<history>
<date date-type="received">
<day>02</day>
<month>07</month>
<year>2012</year></date>
<date date-type="rev-recd">
<day>13</day>
<month>11</month>
<year>2012</year></date>
<date date-type="accepted">
<day>14</day>
<month>11</month>
<year>2012</year></date></history>
<permissions>
<copyright-statement>© 2012 by the authors; licensee MDPI, Basel, Switzerland</copyright-statement>
<copyright-year>2012</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>In this paper, a low-cost, low-power and high performance micro control unit (MCU) core is proposed for wireless body sensor networks (WBSNs). It consists of an asynchronous interface, a register bank, a reconfigurable filter, a slop-feature forecast, a lossless data encoder, an error correct coding (ECC) encoder, a UART interface, a power management (PWM), and a multi-sensor controller. To improve the system performance and expansion abilities, the asynchronous interface is added for handling signal exchanges between different clock domains. To eliminate the noise of various bio-signals, the reconfigurable filter is created to provide the functions of average, binomial and sharpen filters. The slop-feature forecast and the lossless data encoder is proposed to reduce the data of various biomedical signals for transmission. Furthermore, the ECC encoder is added to improve the reliability for the wireless transmission and the UART interface is employed the proposed design to be compatible with wireless devices. For long-term healthcare monitoring application, a power management technique is developed for reducing the power consumption of the WBSN system. In addition, the proposed design can be operated with four different bio-sensors simultaneously. The proposed design was successfully tested with a FPGA verification board. The VLSI architecture of this work contains 7.67-K gate counts and consumes the power of 5.8 mW or 1.9 mW at 100 MHz or 133 MHz processing rate using a TSMC 0.18 μm or 0.13 μm CMOS process. Compared with previous techniques, this design achieves higher performance, more functions, more flexibility and higher compatibility than other micro controller designs.</p></abstract>
<kwd-group>
<kwd>micro control unit</kwd>
<kwd>reconfigurable filter</kwd>
<kwd>multi-sensor</kwd>
<kwd>asynchronous interface</kwd>
<kwd>wireless body sensor network</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>A wireless body sensor network (WBSN) [<xref ref-type="bibr" rid="b1-sensors-12-16211">1</xref>,<xref ref-type="bibr" rid="b2-sensors-12-16211">2</xref>] consists of spatially distributed autonomous body sensors that are used to monitor physical signals, such as temperature, blood pressure, electrocardiogram (ECG), and heartbeat, and then transmit the information thus obtained through the wireless network to central servers. WBSN systems are helpful for healthcare monitoring applications. For example, for more than 25% of patients, the blood pressure measurements taken in a doctor’s office or hospital may be higher than usual, due to so-called white-coat hypertension. WBSN systems can monitor the blood pressure for 24 hours, thus avoiding this situation and providing more accurate information for diagnostic purposes. Although WBSN systems are widely used for long-term healthcare monitoring applications, their acceptance is limited by the power, size, and cost constrains of each sensor node in corresponding to limited resource of battery, memory, computational speed, and wireless communication bandwidth. It is thus important to develop low-power, low-cost, small-size, and high performance wireless body sensor nodes.</p>
<p>A typical wireless body sensor node is composed of the following parts: bio-sensors, a readout circuit, an analog to digital converter (ADC), a micro control unit (MCU), and a wireless transceiver with an antenna. Researchers have proposed a number of efficient bio-sensors for use with WBSN systems. For example, thermal sensors [<xref ref-type="bibr" rid="b3-sensors-12-16211">3</xref>] are used to detect fever in babies and child mortality, while heartbeat and electrocardiogram (ECG) [<xref ref-type="bibr" rid="b4-sensors-12-16211">4</xref>] sensors are used to prevent heart disease, and blood pressure (BP) [<xref ref-type="bibr" rid="b5-sensors-12-16211">5</xref>] can be also measured to reduce the risk of some cardiovascular diseases. Recently, some special biomedical signals can be measured or detected by image process techniques through digital colour camera CCD-based sensors [<xref ref-type="bibr" rid="b6-sensors-12-16211">6</xref>]. The microcontroller [<xref ref-type="bibr" rid="b7-sensors-12-16211">7</xref>] with its functions of power management, signal processing, and interfacing between the ADC and transceiver is an important device in a WBSN system. Researchers have proposed a number of low-cost and high-performance microcontrollers [<xref ref-type="bibr" rid="b8-sensors-12-16211">8</xref>–<xref ref-type="bibr" rid="b11-sensors-12-16211">11</xref>]. However, while micro-control units [<xref ref-type="bibr" rid="b10-sensors-12-16211">10</xref>,<xref ref-type="bibr" rid="b11-sensors-12-16211">11</xref>] are designed as digital signal processors (DSPs), and have high performance with regard to processing signals, they also consume a huge amount of power. In our previous works [<xref ref-type="bibr" rid="b8-sensors-12-16211">8</xref>,<xref ref-type="bibr" rid="b9-sensors-12-16211">9</xref>], an adaptive power controller was designed into a micro control unit (MCU) and used to develop a low power WBSN system [<xref ref-type="bibr" rid="b9-sensors-12-16211">9</xref>]. A low-cost VLSI architecture for a micro control unit [<xref ref-type="bibr" rid="b8-sensors-12-16211">8</xref>] with multi-sensor nodes was also designed for a WBSN system, with the functions of data compression, asynchronous interface, ECC, and power management.</p>
<p>A digital filter [<xref ref-type="bibr" rid="b12-sensors-12-16211">12</xref>] is a system that performs mathematical operations on a sampled signal to reduce or enhance certain aspects of the original signal. The low pass filters [<xref ref-type="bibr" rid="b13-sensors-12-16211">13</xref>] pass signals from low frequencies and reject signals from high ones. Forecasting is the process of making statements about future events, and it can be useful for Fuzzy-Logic decision-making [<xref ref-type="bibr" rid="b14-sensors-12-16211">14</xref>] to help make long-term energy purchases. The lossless data encoder used with a low pass filter can reduce the data rate without losing any information. Huffman coding [<xref ref-type="bibr" rid="b15-sensors-12-16211">15</xref>,<xref ref-type="bibr" rid="b16-sensors-12-16211">16</xref>] is an entropy encoding algorithm used for the proposed lossless data encoder design, while the error correct coding (ECC) [<xref ref-type="bibr" rid="b17-sensors-12-16211">17</xref>] is a technique used to control errors during data transmission, which can improve the reliability of wireless communication.</p>
<p>As mentioned above, to improve the functions of a WBSN system, it is necessary to enhance the design of the MCU. In this paper, a versatile MCU design is proposed, consisting of an asynchronous interface, register array, reconfigurable filter, sloped-feature forecast, and lossless data encoder. The power management (PWM) and multi-selector systems are also designed for to support low-power use and many different sensors, respectively. Moreover, the universal asynchronous receiver/transmitter (UART) interface is designed to improve compatibility with wireless devices. The rest of this paper is organized as follows: Section 2 introduces the system architecture, while Section 3 presents the VLSI architecture of the proposed design. Section 4 shows the simulation results and chip implementation. Finally, Section 5 presents some brief conclusions to this work.</p></sec>
<sec>
<label>2.</label>
<title>Architecture of WBSN System</title>
<p><xref ref-type="fig" rid="f1-sensors-12-16211">Figure 1</xref> shows the architecture of the WBSN system for a hospital and healthcare monitoring application. In this case, each wireless body sensor node connects with various physical and physiological sensors. The hierarchical architecture of this WBSN system [<xref ref-type="bibr" rid="b9-sensors-12-16211">9</xref>] assembles four nodes to a group layer, and combines several groups to a network layer. The network layer controls all of the sensor groups by sending commands and receiving data from them. Each wireless body sensor node is integrated by bio-sensors, analog-to-digital converter (ADC), MCU, and wireless transceiver module. The analog bio-signals are captured by bio-sensors and then converted from analog to digital type. If the bio-signals are from digital sensors, the detected signals can be sent to the MCU directly. Finally, the processed bio-signals are transmitted by wireless devices through the communication UART protocol. The information of bio-signals can be refined and displayed by a computer or server within a few seconds.</p>
<p>Different from a microprocessor that uses a sequential process, the MCU design can process data by parallel computing. The main advantage of parallel computing is that large operations can be divided into smaller modules to solve in parallel synchronously, which provides the needed high performance for real-time bio-signal processing. It also means that the operating frequency can be decreased for the same operations, leading to lower power consumption, which is a key characteristic for wireless devices. To communicate and synchronize signals between different subtasks, an asynchronous circuit is needed to maintain the high performance of the parallel program and correction of the transmission signals. The MCU device not only has the function of data processing, but also produces control signals that control each part of the wireless body sensor node.</p></sec>
<sec>
<label>3.</label>
<title>VLSI Architecture of MCU</title>
<p><xref ref-type="fig" rid="f2-sensors-12-16211">Figure 2</xref> shows the block diagram of the proposed MCU design. It can be separated into the data and control paths. The control path carries out the controlled signal processing, and the data is transmitted via the data stream path. As <xref ref-type="fig" rid="f2-sensors-12-16211">Figure 2</xref> shows, the proposed MCU design consists of an asynchronous interface, a power management circuit, a register bank, a reconfigurable filter, a slope-feature forecaster, a lossless compression circuit, a multi-sensor selector, an ECC encoder, and a UART interface. The details of each part will be described in the following subsections.</p>
<sec>
<label>3.1.</label>
<title>Asynchronous Interface</title>
<p>Since the frequency and phase of bio-signals from the ADC are different from the MCU circuit, a novel asynchronous interface circuit was integrated into the proposed MCU design. The asynchronous circuit has the potential specifications of low-power consumption, design reuse, improved noise immunity, and high electromagnetic compatibility. One of the most important benefits of the asynchronous circuit is that its power consumption is about 70% less than that of the synchronous design, since the latter tends to draw a large amount of current at the clock edge and shortly thereafter. As shown in <xref ref-type="fig" rid="f2-sensors-12-16211">Figure 2</xref>, the signals with different clock domains can be passed by the asynchronous interface in a wireless body sensor node. The asynchronous interface provides data link services that enable the MCU design to run over a wide range of ADC clock and UART clock frequencies. In the proposed asynchronous interface design, the faster frequency of the operational clock is set as the sampling clock to rebuild the signal from other lower clock domains. Therefore, the signal can access the ADC, MCU, and UART clock domains efficiently and accurately via the proposed asynchronous interface, and prevent the occurrence of handshake problems.</p></sec>
<sec>
<label>3.2.</label>
<title>Power Management</title>
<p>As the transmitting device contributes most of the power consumption of the WBSN system, an innovative power management controller was created to reduce the transmission power intelligently of the system. The power management method automatically changes the mode from Active to Sleep for each of the devices in the wireless body sensor node. <xref ref-type="fig" rid="f3-sensors-12-16211">Figure 3</xref> shows the power management control flow for the wireless body sensor node. The control flow contains nested conditional operations with several mutually exclusive conditional paths, which can be implemented by a finite state machine (FSM) circuit. As shown in <xref ref-type="fig" rid="f4-sensors-12-16211">Figure 4</xref>, the ADC_ready signal is a control signal for handshaking, which provides the ready information of the output digital data produced by the ADC. The system is initialized by the detected data of sensor 1, and then checks whether the ADC_ready is available or not. If the ADC_ready signal is obtained from the system, the current state is changed to the Sleep state. The Sleep state is used to power off all the unused circuits, which include the sensors, ADC, RF module, and the functions of the MCU. The system will be woken up when it detects the available ADC_ready signal from the ADC. Each function is powered on only when it needs to be used. Furthermore, the task of the central controller is not only to produce control signals for multi-sensor selection and data compression, but also to send power control signals for each part of the system. The proposed power management circuit design can thus reduce power consumption of the wireless body sensor network system efficiently.</p></sec>
<sec>
<label>3.3.</label>
<title>Multi-Sensor Controller</title>
<p>A novel multi-sensor controller was generated for the proposed MCU design as this is necessary to support multi-sensor detection. It produces control signals to a multiplexer for signal selection. The multi-sensor controller is operated with a 4-to-1 multiplexer which has a Boolean equation to connect with four input signals, known as sensor1, sensor2, sensor3, and sensor4. The MCU sends instructions to the multi-sensor controller, which then produces control signals so that the multiplexer can select the sensor based on the hierarchy of the operation. If more than two sensors are working simultaneously, the data from different sensors can be passed-through correctly. Each sensor has its own buffer for storing the data obtained through the multiplexer’s selection procedure. The sensor-select enable signal can make sure that the output data is processed independently. Therefore, the MCU has the ability to prevent the data stream from having missing data based on the design of the multi-sensor controller.</p></sec>
<sec>
<label>3.4.</label>
<title>Register Bank</title>
<p>The proposed MCU design includes a reconfigurable filter, so the register bank was added as a novel partition. The register bank was designed for storing a collection of values and the position of each value cloud be computed from its index mark by a mathematical formula. Register banks are widely used in signal processing, as the element indices can be obtained by real-time computing operations. <xref ref-type="fig" rid="f4-sensors-12-16211">Figure 4</xref> shows the architecture of the register bank used in this work. The input signal of the register bank comes from the ADC, and the strings are stored separately according to different bio-sensors, such as ECG, thermal, blood pressure, and heartbeat. Four data strings are stored in four homogenous registers, and the value of each register would be shifted down to the next register when a new value comes from the ADC. After the signals from the four sensors are stored in the first column of the register bank, the values in each column will be shifted right to the next column. The register bank design can store four continuous values for each sensor signal, and provide these to the digital filter and data encoder for signal processing.</p></sec>
<sec>
<label>3.5.</label>
<title>Reconfigurable Filter</title>
<p>The reconfigurable filter is designed to filter various bio-signals by using only one filter circuit. Since the characteristics of bio-signals are very different, the coefficients of different digital filters will also be very different. Moreover, the spectra of different bio-signals are very different, so various filters with different characteristics are used for signal filtering. The filter was designed with a novel reconfigurable architecture, which can be transferred to an average, a binomial, and a sharpen filters immediately. The architecture of the average, binomial, sharpen, and reconfigurable filter will be described in the following subsections:</p>
<sec>
<label>3.5.1.</label>
<title>Average Filter (Low Pass Filter)</title>
<p>The average filter is a kind of low-pass filter, with the characteristic that all of the weight coefficients are the same and the filtered result is the average of the input values. <xref ref-type="fig" rid="f5-sensors-12-16211">Figure 5</xref> shows the architecture of the average filter which consists of three adders and one shifter. The four input values can be obtained from the register bank as Reg1, Reg2, Reg3, and Reg4, and the values of these can be updated when the new detected value arrives. The values of Reg1 and Reg2 are added by an adder, as well as those of Reg3 and Reg4. The two added results are then added by one more adder to produce the sum of these four values stored in these four registers. Finally, the sum of the four values is divided by four by using the shifter to shift two bits right. The average filter can be implemented by only the adders and shifter without any multiplier and divider, which achieves the benefit of low hardware cost for VLSI implementation.</p></sec>
<sec>
<label>3.5.2.</label>
<title>Binomial Filter (Band Pass Filter)</title>
<p>The binomial filter is a kind of band-pass filter [<xref ref-type="bibr" rid="b18-sensors-12-16211">18</xref>], in which the binomial coefficients can be formed by a Pascal’s triangle, as shown in <xref ref-type="fig" rid="f6-sensors-12-16211">Figure 6(a)</xref>. The binomial coefficients of the proposed binomial filter can be obtained by:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math id="mm1" display="block">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow>
<mml:mi>n</mml:mi></mml:msup>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>n</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mn>0</mml:mn></mml:msup>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>n</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msup>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>n</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn>2</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo>+</mml:mo>
<mml:mo>⋯</mml:mo>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>n</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msup>
<mml:mo>+</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>n</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>n</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>n</mml:mi></mml:msup></mml:mrow></mml:math></disp-formula>where 
<inline-formula>
<mml:math id="mm2" display="inline">
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>n</mml:mi></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>k</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is binomial coefficient for each power of <italic>x</italic>, and <italic>k</italic> and <italic>n</italic> indicate the number of elements and the size of the element set. If <italic>n</italic> is assigned equal to 3, for example, the binomial coefficients will be 1, 3, 3, and 1, which correspond to the fourth row of Pascal’s triangle, as shown in <xref ref-type="fig" rid="f6-sensors-12-16211">Figure 6(a)</xref>. <xref ref-type="fig" rid="f6-sensors-12-16211">Figure 6(b)</xref> shows the architecture of the proposed binomial filter. In order to reduce the hardware cost, the binomial filter is implemented by five adders and three shifters. The original value times of coefficient 3 can calculated by using only one shifter and one adder, which can be greatly reduce hardware cost by avoiding the use of a multiplier. The result of the proposed binomial filter can be calculated by shifting three bits right from the sum of the weights.</p></sec>
<sec>
<label>3.5.3.</label>
<title>Sharpen Filter (High Pass Filter)</title>
<p>The sharpen filter is a kind of high-pass filter, which can pass high frequency signals but cutoff signals with low frequency. A wide variety of alternative leaner sharpen filters can be used to enhance high frequency details and reduce low frequency noise. The proposed sharpen filter is based on the Gaussian [<xref ref-type="bibr" rid="b19-sensors-12-16211">19</xref>] equation defined by:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math id="mm3" display="block">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mn>1</mml:mn>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>π</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>σ</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:mfrac>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi></mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mi>σ</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula>where <italic>x</italic> is the distance from the original signal and σ is the standard deviation of the Gaussian distribution. Values from this distribution are used to build a convolution signal which is applied to the original data. <xref ref-type="fig" rid="f7-sensors-12-16211">Figure 7</xref> shows the architecture of the proposed sharpen filter.</p>
<p>To reduce the hardware cost, the proposed sharpen filter is designed by using only four adders and three shifters. The coefficients of the proposed sharpen filter are −1, 3, 3, and −1, which corresponds to enhance the center of the signals and remove the influence of neighboring ones. The proposed sharpen filter enhances the details of high-frequency signals and removes other details of low-frequency signals present in noise, and thus provides an efficient resolution of high-pass filtering the bio-signals.</p></sec>
<sec>
<label>3.5.4.</label>
<title>Reconfigurable Filter</title>
<p>The three kinds of filter mentioned above provide different spectra for filtering various bio-signals, and can thus provide a complete filter set for wireless multi-sensor network systems. However, implementing these three kinds of filters requires a lot of chip area, and only one filter can be used during each detection time. Therefore, this work proposes a reconfigurable filter to replace the average, binomial, sharpen, and reconfigurable ones. The principle behind this is to use control signals to control the behavior of the reconfigurable hardware. Therefore, the main concept in the design of the proposed reconfigurable filter is using three multiplexers and one control signal to configurable the reconfigurable filter as an average, binomial or sharpen one. <xref ref-type="fig" rid="f8-sensors-12-16211">Figure 8</xref> shows the architecture of the proposed reconfigurable filter, which consists of five adders, four registers, and three multiplexers.</p>
<p><xref ref-type="table" rid="t1-sensors-12-16211">Table 1</xref> lists the hardware cost of the average, binomial, sharpen, and the proposed reconfigurable filters. The average filter consists of two adders and one shifter, and the equivalent gate count is 2.53 K-gates. The binomial filter is a little more complex than the average filter. It is composed of five adders and three shifters, and the cost is about 2.69 K-gates. The sharpen filter is composed of five adders and three shifters, and its gate count is almost the same as that of the binomial filter. The total hardware costs of the average, binomial, and sharpen filters are twelve adders and seven shifters, which equals 7.92 k-gates. However, the proposed novel reconfigurable design costs only five adders and four shifters, which equals 3.24 K-gates. The proposed novel reconfigurable filter design provides the same functionality while reducing the adders by 58.3%, shifters by 42.8%, and gate counts by 59%. It provides a novel low-cost reconfigurable architecture for developing three different kinds of filters for wireless multi-sensor network systems.</p></sec></sec>
<sec sec-type="methods">
<label>3.6.</label>
<title>Lossless Data Encoder</title>
<p>The lossless data encoder consists of three parts: a slope-feature forecaster, an entropy encoder, and an error correct coding (ECC) encoder. In this work, the slope-feature forecaster and entropy encoder can be integrated as a lossless data compression encoder. To improve the error bit rate from wireless transmission, an error correcting code encoder is used. The details of each part of the system are described in the following subsections:</p>
<sec>
<label>3.6.1.</label>
<title>Slope-Feature Forecaster</title>
<p>With the four signal values stored in the register bank, the latest of the two values can be used to operate the newest value in predicatively. The methodology of the proposed forecaster design is based on slope prediction, as shown in <xref ref-type="disp-formula" rid="FD3">Equation (3)</xref>:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math id="mm4" display="block">
<mml:mrow>
<mml:mtext>Q</mml:mtext>
<mml:mo stretchy="false">(</mml:mo>
<mml:mtext>s</mml:mtext>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>a</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>b</mml:mi>
<mml:mi>P</mml:mi></mml:mrow></mml:math></disp-formula>where <italic>a</italic> is a positive constant, <italic>b</italic> is the value of the slope, and the <italic>P</italic> is the latest value of the original signals. Therefore, the response of the equation <italic>Q(s)</italic> is the result of the forecasting value. <xref ref-type="fig" rid="f9-sensors-12-16211">Figure 9</xref> shows the architecture of the slope-feature forecaster.</p>
<p>The input values of the slope forecasting step can be obtained from the register bank, and then the forecast value is processed and compared with the original one. After comparison by the comparator, a subtract circuit is used to calculate the difference between forecast value and the original one, with the result called the difference value. Finally, the difference value and sign information are produced and then send to the entropy encoder as input. One common example is the variation of ECG, which is generally very large, and the difference value between two points can reach several hundreds of units by an 11-bits ADC. Using the slope forecast design, the probabilities can be concentrated within a small range of difference values. On the other hand, if the biomedical signals contain fewer variations, as seen with body temperature, for example, the probabilities are gathered and the difference values are distributed around zero. The proposed novel slop feature forecast consists of a comparator and one sub-tractor, which costs a small chip area but improves the compression rate efficiently.</p></sec>
<sec sec-type="methods">
<label>3.6.2.</label>
<title>Entropy Data Encoder</title>
<p>The entropy encoder is a lossless data compression circuit based on Huffman coding [<xref ref-type="bibr" rid="b20-sensors-12-16211">20</xref>]. The principle of entropy coding is based on creating and assigning a unique prefix-free code to each unique value produced by the slope forecaster. After receiving the difference value and sign information from the slope forecaster, the entropy encoder replaces each 11-bit input difference value and 1-bit sign information with the corresponding variable length code (VLC). The length of each code is approximately proportional to the negative logarithm of the probability. Therefore, the most common values are replaced by the shortest variable length codes. The term refers to the use of the variable length code chart for encoding the difference values, and the chart has been derived in a particular way is based on the estimated probability of occurrence for each possible value of the difference values.</p>
<p>The Huffman algorithm considers both the probability and length of code. The basic concept behind Huffman coding is to represent more frequent data by shorter codes, and less frequent data by longer ones. Therefore, the average code length is expected to be shorter than that of the fixed-length representation. The probability distribution and variable length codes of the proposed entropy data encoder is shown in <xref ref-type="fig" rid="f10-sensors-12-16211">Figure 10</xref>. To analyze the performance of the proposed slope forecast method and entropy encoding skills, the MIT-BIH Arrhythmia database [<xref ref-type="bibr" rid="b23-sensors-12-16211">23</xref>] for ECG signals is used for testing. The ECG signals were digitized by sampling at 360 samples per second, and then quantized and encoded into eleven bits per sample. In this paper, the MIT-BIH database is used as an example to obtain the compression rate of the data encoder. The average result of the compression rate (CR) is over 2.53, which means that more than half the ECG data rates are reduced by the proposed data encoder design.</p></sec>
<sec>
<label>3.6.3.</label>
<title>Error Correct Coding (ECC) Encoder</title>
<p>The error correct code (ECC) is a technique used to control the errors that can occur during data transmission due to unreliable or noisy wireless communication channels. The principle of the ECC involves adding additional information, called redundancy codes, into the original data for transmission. After receiving the encoded data from the transmitter, the receiver can check the correctness of the received data by using the ECC decoder. If the decoder detects a limited number of errors that may occur anywhere in the message, the errors can be corrected by the redundancy codes without requiring retransmission. The ECC decoder can check the received data with a cyclic redundancy technique, which is a single burst error detecting cyclic code designed to detect transmission errors. This applies a generation polynomial, which is used as the divisor in polynomial long division over a finite field. The ECC decoder can automatically check the received stream, and if it is correct, then it sends out the data directly. On the other hand, if the received stream is incorrect, the ECC decoder corrects the error bits immediately and then send out the corrected data. This error correcting coding design improves the reliability of biomedical signals for the WBSN systems.</p></sec></sec>
<sec>
<label>3.7.</label>
<title>Universal Asynchronous Receiver/Transmitter (UART) Interface</title>
<p>The UART interface [<xref ref-type="bibr" rid="b21-sensors-12-16211">21</xref>] is commonly used in conjunction with communication standard protocols, such as RS232. The RS232 transceiver is a peripheral device used with computers, and can transmit data in serial forms. <xref ref-type="fig" rid="f11-sensors-12-16211">Figure 11</xref> shows the architecture of the proposed UART interface design. The UART interface is controlled by a UART controller that can produce control signals to select one bit of the ECC_output data as one bit of the output signal UART_out. As soon as the data is deposited in the shift register after completion of the previous data, the UART interface will generate the output signal UART_out including one bit of start information, eight bits of data information from bit0 to bit7, and two bits of stop information. Since transmission of a single character may take a long time, the UART interface will maintain a flag related to the baud rate to show busy information. Hence, the UART controller will keep the current transmission status until the previous transmission is finished. The UART interface can be designed with the ECC encoder, and then the uncertain error bits that are received can be corrected by the ECC decoder. Therefore, the UART interface design improves the compatibility of the proposed MCU design with PCs or wireless devices.</p></sec></sec>
<sec sec-type="results">
<label>4.</label>
<title>Simulation Results and Chip Implementation</title>
<p>To realize the proposed design, in this work the Verilog hardware description language was used to implement the VLSI architecture. The Design Compiler, an electronic design automation (EDA) tool, was used to synthesize the proposed MCU design based on TSMC 0.18 μm and 0.13 μm CMOS generic logic process technology. The layout of this work was generated by the auto place and route (APR) tool IC Compiler, and <xref ref-type="fig" rid="f12-sensors-12-16211">Figure 12</xref> shows the photomicrograph of the chip used in this work. The core area of this work is 0.076-mm<sup>2</sup> or 0.037-mm<sup>2</sup>, and it consumes 5.8 mW or 1.9 mW when operating at 100 MHz or 133 MHz frequency with the TSMC 0.18 μm or 0.13 μm CMOS process, respectively.</p>
<p><xref ref-type="fig" rid="f13-sensors-12-16211">Figure 13(a)</xref> shows the emulation flow of the proposed design. It consists of an Altera EP4C115F29C7N FPGA core, a transmission interface (RS232 protocol), and a software system. <xref ref-type="fig" rid="f13-sensors-12-16211">Figure 13(b)</xref> shows a system prototype implementation, which includes a FPGA verification board, RS232 interface, and a personal computer.</p>
<p>First, the biomedical signals are filtered by the reconfigurable filter for high-pass, low-pass, or band-pass filtering, which can be set by users according to the characteristics of the biomedical signals. Next, the filtered signals are passed to the slope-feature forecast circuit and the difference values extracted from the original data can be obtained. After forecasting, the difference values are sent to the entropy encoder based on the Huffman coding algorithm, and then encoded by the ECC encoder to increase the reliability of the wireless device based on the UART protocol. The encoded stream data is then be sent to PC by the wireless UART device and refined by the decoding processes which were developed using C language and executed by a PC. Finally, the refined biomedical signals are compared with the original ones to make sure all the functions of the proposed MCU design are correct.</p>
<p><xref ref-type="table" rid="t2-sensors-12-16211">Table 2</xref> lists the comparison results of the number of sensors, process, function, operation frequency, gate count, power consumption, and chip area of six efficient MCU designs with this work. As compared with six previous designs, this work achieves supporting four various biomedical sensors, which is four times of previous works [<xref ref-type="bibr" rid="b9-sensors-12-16211">9</xref>–<xref ref-type="bibr" rid="b13-sensors-12-16211">13</xref>] and the same as our previous work [<xref ref-type="bibr" rid="b8-sensors-12-16211">8</xref>]. To be able to compare with the previous works [<xref ref-type="bibr" rid="b8-sensors-12-16211">8</xref>,<xref ref-type="bibr" rid="b9-sensors-12-16211">9</xref>,<xref ref-type="bibr" rid="b11-sensors-12-16211">11</xref>,<xref ref-type="bibr" rid="b12-sensors-12-16211">12</xref>], this work was synthesized by 0.18-μm and 0.13-μm processes. The functions in this work includes the slop compression, power management (PWM), asynchronous interface, ECC, register bank, reconfigurable filter, and UART interface, which are much more than previous designs [<xref ref-type="bibr" rid="b8-sensors-12-16211">8</xref>–<xref ref-type="bibr" rid="b13-sensors-12-16211">13</xref>]. The gate count of this work is 7.67-K which is much less than other low-cost MCU cores [<xref ref-type="bibr" rid="b9-sensors-12-16211">9</xref>–<xref ref-type="bibr" rid="b13-sensors-12-16211">13</xref>]. The power consumption of this work is 5.8 mW or 1.9 mW operating at 100 MHz or 133 MHz with TSMC 0.18-μm or 0.13-μm process.</p>
<p>Comparing the results with those in our previous work [<xref ref-type="bibr" rid="b8-sensors-12-16211">8</xref>], although the chip area and power consumption in the current study are both higher, the functions of slope compression, register bank, reconfigurable filter, and UART interface are all better. <xref ref-type="table" rid="t3-sensors-12-16211">Table 3</xref> shows the gate count of each function in the proposed MCU design. The gate count of the multiple selector auto-detecting four sensors is 1.88 K-gates. The reconfigurable filter and register bank are implemented by the most gates in the proposed MCU design, 3.24 K, and can provide the functions of low-pass, high-pass, and band-pass filters for the WBSN system. The lossless data compression circuit based on the Huffman encoding algorithm and the error correct coding circuit (ECC) are realized by 3.77 K-gates and 1.68 K-gates. The PWM circuit is designed for the purpose of saving power, and can be realized by a finite state machine (FSM) with only 0.12 K-gates. The UART interface, which is used to increase the compatibility with wireless devices for communication transmission, costs 0.44 K-gates.</p>
<p><xref ref-type="table" rid="t4-sensors-12-16211">Table 4</xref> lists the comparison rates in our previous work [<xref ref-type="bibr" rid="b8-sensors-12-16211">8</xref>] and the current one based on patterns in the MIT-BIH ECG database [<xref ref-type="bibr" rid="b23-sensors-12-16211">23</xref>] with the numbers 112, 115, 121, 201, 205, and 231. The compression rate of this work for pattern 112 is 2.59, which is much better than the 2.35 obtained in our previous work. It is clear that the compression rates in this work improve on those in the earlier work by between 2.02% to 13.27%, and this is due to the slope-feature forecaster design. The compression rate of MIT-BIH Arrhythmia data in this work is 2.38.</p></sec>
<sec sec-type="conclusions">
<label>5.</label>
<title>Conclusions</title>
<p>A multiple-function micro control unit (MCU) design for wireless body multi-sensor networks is presented in this paper. It improves on earlier designs by adding the slope-feature forecaster, register bank, reconfigurable filter, and UART interface to enhance the compression rates, remove signal noise, and increase the compatibility for the MCU design. The proposed MCU design can operate at 133 MHz with a power consumption of 1.9 mW. Compared with previous designs, this one has the benefits of using less power and offering multiple sensor support, as well as less noise, a lower transmission error rate, and a lower data rate. These characteristics provide an efficient basis for developing wireless body sensor network (WBSN) systems.</p></sec></body>
<back>
<ack>
<p>This work was supported in part by the National Science Council, R.O.C, under Grant number NSC-101-2220-E-006-012, NSC-101-2221-E-033-066, NSC-100-2218-E-033-007, and NSC-100-2220-E-305-003 and the National Chip Implementation Center, R.O.C. The authors also wish to express their gratitude to the Center of Advanced Biomedical System, National Cheng Kung University, Taiwan.</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-12-16211"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Yang</surname><given-names>Y.W.</given-names></name><name><surname>Divsholi</surname><given-names>B.S.</given-names></name></person-group><article-title>Sub-frequency interval approach in electromechanical impedance technique for concrete structure health monitoring</article-title><source>Sensors</source><year>2010</year><volume>10</volume><fpage>11644</fpage><lpage>11661</lpage><pub-id pub-id-type="doi">10.3390/s101211644</pub-id><pub-id pub-id-type="pmid">22163548</pub-id></citation></ref>
<ref id="b2-sensors-12-16211"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huang</surname><given-names>P.H.</given-names></name><name><surname>Chen</surname><given-names>J.L.</given-names></name><name><surname>Larosa</surname><given-names>Y.T.</given-names></name><name><surname>Chiang</surname><given-names>T.L.</given-names></name></person-group><article-title>Estimation of distributed fermat-point location for wireless sensor networking</article-title><source>Sensors</source><year>2011</year><volume>11</volume><fpage>4358</fpage><lpage>4371</lpage><pub-id pub-id-type="doi">10.3390/s110404358</pub-id><pub-id pub-id-type="pmid">22163851</pub-id></citation></ref>
<ref id="b3-sensors-12-16211"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Martin</surname><given-names>M.</given-names></name><name><surname>Muhammad</surname><given-names>T.</given-names></name><name><surname>Takuro</surname><given-names>S.</given-names></name></person-group><article-title>Data collection method for mobile sensor networks based on the theory f thermal fields</article-title><source>Sensors</source><year>2011</year><volume>11</volume><fpage>7188</fpage><lpage>7203</lpage><pub-id pub-id-type="doi">10.3390/s110707188</pub-id><pub-id pub-id-type="pmid">22164011</pub-id></citation></ref>
<ref id="b4-sensors-12-16211"><label>4.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Carlos</surname><given-names>O.</given-names></name><name><surname>González-Morán</surname><given-names>J.J.</given-names></name></person-group><article-title>Agustín flores-cuautle and ernesto suaste-gómez. A piezoelectric plethysmograph sensor based on a Pt wire implanted lead lanthanum zirconate titanate bulk ceramic</article-title><source>Sensors</source><year>2010</year><volume>10</volume><fpage>7146</fpage><lpage>7156</lpage><pub-id pub-id-type="doi">10.3390/s100807146</pub-id><pub-id pub-id-type="pmid">22163596</pub-id></citation></ref>
<ref id="b5-sensors-12-16211"><label>5.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lee</surname><given-names>S.S.</given-names></name><name><surname>Nam</surname><given-names>D.H.</given-names></name><name><surname>Hong</surname><given-names>Y.S.</given-names></name><name><surname>Lee</surname><given-names>W.B.</given-names></name><name><surname>Son</surname><given-names>I.H.</given-names></name><name><surname>Kim</surname><given-names>K.H.</given-names></name><name><surname>Choi</surname><given-names>J.G.</given-names></name></person-group><article-title>Measurement of blood pressure using an arterial pulsimeter equipped with a hall device</article-title><source>Sensors</source><year>2011</year><volume>11</volume><fpage>1784</fpage><lpage>1793</lpage><pub-id pub-id-type="doi">10.3390/s110201784</pub-id><pub-id pub-id-type="pmid">22319381</pub-id></citation></ref>
<ref id="b6-sensors-12-16211"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Antonia</surname><given-names>M.C.</given-names></name><name><surname>Gonzalo</surname><given-names>P.</given-names></name><name><surname>Matilde</surname><given-names>S.</given-names></name><name><surname>Isidro</surname><given-names>V.R.</given-names></name></person-group><article-title>Digital image sensor-based assessment of the status of Oat crops after frost damage</article-title><source>Sensors</source><year>2011</year><volume>11</volume><fpage>6015</fpage><lpage>6036</lpage><pub-id pub-id-type="doi">10.3390/s110606015</pub-id><pub-id pub-id-type="pmid">22163940</pub-id></citation></ref>
<ref id="b7-sensors-12-16211"><label>7.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Jani</surname><given-names>M.</given-names></name><name><surname>Matthew</surname><given-names>J.T.</given-names></name><name><surname>Erkka</surname><given-names>L.</given-names></name><name><surname>Lauri</surname><given-names>K.</given-names></name></person-group><article-title>Timing-error detection design consideration in Subthreshold: an 8-bit microprocessor in 65 nm CMOS</article-title><source>Sensors</source><year>2012</year><volume>2</volume><fpage>180</fpage><lpage>196</lpage></citation></ref>
<ref id="b8-sensors-12-16211"><label>8.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname><given-names>C.A.</given-names></name><name><surname>Chen</surname><given-names>S.L.</given-names></name><name><surname>Huang</surname><given-names>H.Y.</given-names></name><name><surname>Luo</surname><given-names>C.H.</given-names></name></person-group><article-title>An asynchronous multi-sensor micro control unit for wireless body sensor networks (WBSNs)</article-title><source>Sensors</source><year>2011</year><volume>11</volume><fpage>7022</fpage><lpage>7036</lpage><pub-id pub-id-type="doi">10.3390/s110707022</pub-id><pub-id pub-id-type="pmid">22164000</pub-id></citation></ref>
<ref id="b9-sensors-12-16211"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname><given-names>S.L.</given-names></name><name><surname>Lee</surname><given-names>H.Y.</given-names></name><name><surname>Chen</surname><given-names>C.A.</given-names></name><name><surname>Huang</surname><given-names>H.Y.</given-names></name><name><surname>Luo</surname><given-names>C.H.</given-names></name></person-group><article-title>Wireless body sensor network with adaptive low power design for biometrics and healthcare applications</article-title><source>IEEE Syst. J</source><year>2009</year><volume>3</volume><fpage>398</fpage><lpage>409</lpage><pub-id pub-id-type="doi">10.1109/JSYST.2009.2032440</pub-id></citation></ref>
<ref id="b10-sensors-12-16211"><label>10.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Wang</surname><given-names>D.</given-names></name><name><surname>Zhang</surname><given-names>L.</given-names></name><name><surname>Liu</surname><given-names>J.</given-names></name><name><surname>Liu</surname><given-names>R.</given-names></name></person-group><article-title>Embedded speech recognition system on 8-bit MCU core</article-title><conf-name>Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing 2004 (ICASSSP 04)</conf-name><conf-loc>Montreal, QC, Canada</conf-loc><conf-date>17–21 May 2004</conf-date><volume>5</volume><fpage>17</fpage><lpage>21</lpage></citation></ref>
<ref id="b11-sensors-12-16211"><label>11.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Arm</surname><given-names>C.</given-names></name><name><surname>Gyger</surname><given-names>S.</given-names></name><name><surname>Masgonty</surname><given-names>J.M.</given-names></name><name><surname>Morgan</surname><given-names>M.</given-names></name><name><surname>Nagel</surname><given-names>J.L.</given-names></name><name><surname>Piguet</surname><given-names>C.</given-names></name><name><surname>Rampogna</surname><given-names>F.</given-names></name><name><surname>Volet</surname><given-names>P.</given-names></name></person-group><article-title>Low-power 32-bit dual-MAC 120 uW/MHz 1.0 vicyflex1 DSP/MCU core</article-title><source>IEEE J. Solid-State Circuits</source><year>2009</year><volume>44</volume><fpage>2055</fpage><lpage>2064</lpage><pub-id pub-id-type="doi">10.1109/JSSC.2009.2021924</pub-id></citation></ref>
<ref id="b12-sensors-12-16211"><label>12.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lee</surname><given-names>H.Y.</given-names></name><name><surname>Chen</surname><given-names>S.L.</given-names></name><name><surname>Luo</surname><given-names>C.H.</given-names></name></person-group><article-title>A CMOS smart thermal sensor for biomedical application</article-title><source>IEICE Trans. Electron.</source><year>2008</year><volume>E91-C</volume><fpage>96</fpage><lpage>104</lpage><pub-id pub-id-type="doi">10.1093/ietele/e91-c.1.96</pub-id></citation></ref>
<ref id="b13-sensors-12-16211"><label>13.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Amirtharajah</surname><given-names>G.R.</given-names></name><name><surname>Chandrakasan</surname><given-names>A.P.</given-names></name></person-group><article-title>A micropower programmable DSP using approximate signal processing based on distributed arithmetic</article-title><source>IEEE J. Solid-State Circuits</source><year>2004</year><volume>39</volume><fpage>337</fpage><lpage>347</lpage><pub-id pub-id-type="doi">10.1109/JSSC.2003.821774</pub-id></citation></ref>
<ref id="b14-sensors-12-16211"><label>14.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rejc</surname><given-names>M.</given-names></name><name><surname>Pantos</surname><given-names>M.</given-names></name></person-group><article-title>Short-term transmission-loss forecast for the slovenian transmission power system based on a fuzzy-logic decision approach</article-title><source>IEEE Trans. Power Syst</source><year>2011</year><volume>4</volume><fpage>432</fpage><lpage>444</lpage></citation></ref>
<ref id="b15-sensors-12-16211"><label>15.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Robert</surname><given-names>L.</given-names></name><name><surname>Nadarajan</surname><given-names>R.</given-names></name></person-group><article-title>Simple lossless preprocessing algorithms for text compression</article-title><source>IET Software</source><year>2009</year><volume>3</volume><fpage>37</fpage><lpage>45</lpage><pub-id pub-id-type="doi">10.1049/iet-sen:20070106</pub-id></citation></ref>
<ref id="b16-sensors-12-16211"><label>16.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Patauner</surname><given-names>C.</given-names></name><name><surname>Marchioro</surname><given-names>A.</given-names></name><name><surname>Bonacini</surname><given-names>S.</given-names></name><name><surname>Rehman</surname><given-names>A.U.</given-names></name><name><surname>Pribyl</surname><given-names>W.</given-names></name></person-group><article-title>A Lossless data compression system for a real-time application in HEP data acquisition</article-title><source>IEEE Trans. Nucl. Sci</source><year>2011</year><volume>58</volume><fpage>1738</fpage><lpage>1744</lpage><pub-id pub-id-type="doi">10.1109/TNS.2011.2142193</pub-id></citation></ref>
<ref id="b17-sensors-12-16211"><label>17.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Krishnan</surname><given-names>S.C.</given-names></name><name><surname>Panigrahy</surname><given-names>R.</given-names></name><name><surname>Parthasarathy</surname><given-names>S.</given-names></name></person-group><article-title>Error-correcting codes for ternary content addressable memories</article-title><source>IEEE Trans. Comput</source><year>2009</year><volume>58</volume><fpage>275</fpage><lpage>279</lpage><pub-id pub-id-type="doi">10.1109/TC.2008.179</pub-id></citation></ref>
<ref id="b18-sensors-12-16211"><label>18.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Stojmenovic</surname><given-names>I.</given-names></name></person-group><article-title>Recursive algorithms in computer science courses: Fibonacci numbers and binimial coefficients</article-title><source>IEEE Trans. Educ</source><year>2000</year><volume>43</volume><fpage>273</fpage><lpage>276</lpage><pub-id pub-id-type="doi">10.1109/13.865200</pub-id></citation></ref>
<ref id="b19-sensors-12-16211"><label>19.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Alecu</surname><given-names>T.I.</given-names></name><name><surname>Voloshynovskiy</surname><given-names>S.</given-names></name><name><surname>Pun</surname><given-names>T.</given-names></name></person-group><article-title>The Gaussian transform of distributions: Definition, computation and application</article-title><source>IEEE Trans. Sign. Process</source><year>2006</year><volume>54</volume><fpage>2976</fpage><lpage>2985</lpage><pub-id pub-id-type="doi">10.1109/TSP.2006.877657</pub-id></citation></ref>
<ref id="b20-sensors-12-16211"><label>20.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Huffman</surname><given-names>D.A.</given-names></name></person-group><article-title>A method for the construction of minimum redundancy codes</article-title><source>Proc. Inst. Radio Eng</source><year>1951</year><volume>40</volume><fpage>1098</fpage><lpage>1101</lpage></citation></ref>
<ref id="b21-sensors-12-16211"><label>21.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Wang</surname><given-names>Y</given-names></name><name><surname>Song</surname><given-names>K.</given-names></name></person-group><article-title>A new approach to realize UART</article-title><conf-name>Proceedings of IEEE International Conference on Electronic and Mechanical Engineering and Information Technology (EMEIT 2011)</conf-name><conf-loc>Harbin, China</conf-loc><conf-date>12–14 August 2011</conf-date><volume>5</volume><fpage>2749</fpage><lpage>2752</lpage></citation></ref>
<ref id="b22-sensors-12-16211"><label>22.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Monton</surname><given-names>E.</given-names></name><name><surname>Hernandez</surname><given-names>J.F.</given-names></name><name><surname>Blasco</surname><given-names>J.M.</given-names></name><name><surname>Herve</surname><given-names>T.</given-names></name><name><surname>Micallef</surname><given-names>J.</given-names></name><name><surname>Grech</surname><given-names>I.</given-names></name><name><surname>Brincat</surname><given-names>A.</given-names></name></person-group><article-title>Body area network for wireless patient monitoring</article-title><source>IET Commun</source><year>2008</year><volume>2</volume><fpage>215</fpage><lpage>222</lpage><pub-id pub-id-type="doi">10.1049/iet-com:20070046</pub-id></citation></ref>
<ref id="b23-sensors-12-16211"><label>23.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Moody</surname><given-names>G.B.</given-names></name><name><surname>Mark</surname><given-names>R.G.</given-names></name></person-group><article-title>The impact of the MIT/BIH arrhythmia database</article-title><source>IEEE Eng. Med. Biol. Mag</source><year>2001</year><volume>20</volume><fpage>45</fpage><lpage>50</lpage><pub-id pub-id-type="doi">10.1109/51.932724</pub-id><pub-id pub-id-type="pmid">11446209</pub-id></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-12-16211" position="float">
<label>Figure 1.</label>
<caption>
<p>WBSN system for hospital and healthcare monitoring applications.</p></caption>
<graphic xlink:href="sensors-12-16211f1.gif"/></fig>
<fig id="f2-sensors-12-16211" position="float">
<label>Figure 2.</label>
<caption>
<p>The block diagram of the proposed micro-control unit (MCU).</p></caption>
<graphic xlink:href="sensors-12-16211f2.gif"/></fig>
<fig id="f3-sensors-12-16211" position="float">
<label>Figure 3.</label>
<caption>
<p>PWM control flow for the wireless sensor node.</p></caption>
<graphic xlink:href="sensors-12-16211f3.gif"/></fig>
<fig id="f4-sensors-12-16211" position="float">
<label>Figure 4.</label>
<caption>
<p>Architecture of the register bank</p></caption>
<graphic xlink:href="sensors-12-16211f4.gif"/></fig>
<fig id="f5-sensors-12-16211" position="float">
<label>Figure 5.</label>
<caption>
<p>Architecture of the average filter.</p></caption>
<graphic xlink:href="sensors-12-16211f5.gif"/></fig>
<fig id="f6-sensors-12-16211" position="float">
<label>Figure 6.</label>
<caption>
<p>(<bold>a</bold>) Pascal’s triangle. (<bold>b</bold>) Architecture of the proposed binomial filter.</p></caption>
<graphic xlink:href="sensors-12-16211f6.gif"/></fig>
<fig id="f7-sensors-12-16211" position="float">
<label>Figure 7.</label>
<caption>
<p>Architecture of the proposed sharpen filter.</p></caption>
<graphic xlink:href="sensors-12-16211f7.gif"/></fig>
<fig id="f8-sensors-12-16211" position="float">
<label>Figure 8.</label>
<caption>
<p>Architecture of the proposed reconfigurable filter.</p></caption>
<graphic xlink:href="sensors-12-16211f8.gif"/></fig>
<fig id="f9-sensors-12-16211" position="float">
<label>Figure 9.</label>
<caption>
<p>The architecture of the slop feature forecaster.</p></caption>
<graphic xlink:href="sensors-12-16211f9.gif"/></fig>
<fig id="f10-sensors-12-16211" position="float">
<label>Figure 10.</label>
<caption>
<p>The probability distribution and VLC of the proposed entropy data encoder.</p></caption>
<graphic xlink:href="sensors-12-16211f10.gif"/></fig>
<fig id="f11-sensors-12-16211" position="float">
<label>Figure 11.</label>
<caption>
<p>Architecture of the proposed UART interface design.</p></caption>
<graphic xlink:href="sensors-12-16211f11.gif"/></fig>
<fig id="f12-sensors-12-16211" position="float">
<label>Figure 12.</label>
<caption>
<p>The Layout in TSMC 0.18 μm Process.</p></caption>
<graphic xlink:href="sensors-12-16211f12.gif"/></fig>
<fig id="f13-sensors-12-16211" position="float">
<label>Figure 13.</label>
<caption>
<p>The emulation flow and environment of the proposed design (<bold>a</bold>) Block diagram; (<bold>b</bold>) Prototype system.</p></caption>
<graphic xlink:href="sensors-12-16211f13.gif"/></fig>
<table-wrap id="t1-sensors-12-16211" position="float">
<label>Table 1.</label>
<caption>
<p>Hardware cost of the average, binomial, sharpen and the proposed reconfigurable filters.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle"><bold>Filter</bold></th>
<th align="center" valign="middle"><bold>Adder</bold></th>
<th align="center" valign="middle"><bold>Shifter</bold></th>
<th align="left" valign="middle"><bold>Gate Count (including Register-Bank)</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top"><bold>Average Filter (Low-Pass)</bold></td>
<td align="center" valign="top">2</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">2.53 K</td></tr>
<tr>
<td align="left" valign="top"><bold>Binomial Filter (Band-Pass)</bold></td>
<td align="center" valign="top">5</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">2.69 K</td></tr>
<tr>
<td align="left" valign="top"><bold>Sharpen Filter (High-Pass)</bold></td>
<td align="center" valign="top">5</td>
<td align="center" valign="top">3</td>
<td align="center" valign="top">2.70 K</td></tr>
<tr>
<td align="left" valign="top"><bold>Total Filters (Average + Binomial + Sharpen)</bold></td>
<td align="center" valign="top"><bold>12</bold></td>
<td align="center" valign="top">7</td>
<td align="center" valign="top"><bold>7.92 K</bold></td></tr>
<tr>
<td align="left" valign="top"><bold>Reconfigurable Filter (This Work)</bold></td>
<td align="center" valign="top"><bold>5</bold></td>
<td align="center" valign="top">4</td>
<td align="center" valign="top"><bold>3.24 K</bold></td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-12-16211" position="float">
<label>Table 2.</label>
<caption>
<p>Comparison of previous MCU designs with this the one presented in this work.</p></caption>
<table frame="box" rules="all">
<thead>
<tr>
<th align="center" valign="middle"/>
<th align="center" valign="middle" content-type="background-color:#80C687"><bold>Sensors No.</bold></th>
<th align="center" valign="middle" content-type="background-color:#80C687"><bold>Process</bold></th>
<th align="center" valign="middle" content-type="background-color:#80C687"><bold>Function</bold></th>
<th align="center" valign="middle" content-type="background-color:#80C687"><bold>Operating Freq. (Hz)</bold></th>
<th align="center" valign="middle" content-type="background-color:#80C687"><bold>Gate Count</bold></th>
<th align="center" valign="middle" content-type="background-color:#80C687"><bold>Power (W at Hz)</bold></th>
<th align="center" valign="middle" content-type="background-color:#80C687"><bold>Chip Area (mm<sup>2</sup>)</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="middle">[<xref ref-type="bibr" rid="b13-sensors-12-16211">13</xref>] JSSC ‘04</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">0.60 μm</td>
<td align="center" valign="middle">Low-Pass Filter</td>
<td align="center" valign="middle">1.2 K</td>
<td align="center" valign="middle">190 K</td>
<td align="center" valign="middle">560 n at 1.2 K</td>
<td align="center" valign="middle">3.200</td></tr>
<tr content-type="background-color:#9FD3A4">
<td align="center" valign="middle">[<xref ref-type="bibr" rid="b10-sensors-12-16211">10</xref>] ICASSSP ‘04</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">0.50 μm</td>
<td align="center" valign="middle">RAM, ROM</td>
<td align="center" valign="middle">8.2 M</td>
<td align="center" valign="middle">Non</td>
<td align="center" valign="middle">60 m at 8.2 M</td>
<td align="center" valign="middle">None</td></tr>
<tr>
<td align="center" valign="middle">[<xref ref-type="bibr" rid="b12-sensors-12-16211">12</xref>] IEICE ‘08</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">0.18 μm</td>
<td align="center" valign="middle">Filter, Compression, Calibrator</td>
<td align="center" valign="middle">100 M</td>
<td align="center" valign="middle">Non</td>
<td align="center" valign="middle">631 μ at 100 M</td>
<td align="center" valign="middle">&lt;1</td></tr>
<tr content-type="background-color:#9FD3A4">
<td align="center" valign="middle">[<xref ref-type="bibr" rid="b9-sensors-12-16211">9</xref>] ISJ ‘09</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">0.18 μm</td>
<td align="center" valign="middle">Compression, PWM</td>
<td align="center" valign="middle">100 M</td>
<td align="center" valign="middle">13.4 K</td>
<td align="center" valign="middle">150 μ at 1 M</td>
<td align="center" valign="middle">0.134</td></tr>
<tr>
<td align="center" valign="middle">[<xref ref-type="bibr" rid="b11-sensors-12-16211">11</xref>] JSSC ‘09</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">0.13 μm</td>
<td align="center" valign="middle">MUX, ALU, RAM, DMA</td>
<td align="center" valign="middle">75 M</td>
<td align="center" valign="middle">110 K</td>
<td align="center" valign="middle">120 μ at 75 M</td>
<td align="center" valign="middle">0.430</td></tr>
<tr content-type="background-color:#9FD3A4">
<td align="center" valign="middle">[<xref ref-type="bibr" rid="b8-sensors-12-16211">8</xref>] Sensors ‘11</td>
<td align="center" valign="middle">4</td>
<td align="center" valign="middle">0.13 μm</td>
<td align="center" valign="middle">Compression, PWM, Asynchronous, ECC</td>
<td align="center" valign="middle">133 M</td>
<td align="center" valign="middle">2.68 K</td>
<td align="center" valign="middle">496 μ at 133 M</td>
<td align="center" valign="middle">0.014</td></tr>
<tr>
<td align="center" valign="middle">This work</td>
<td align="center" valign="middle">4</td>
<td align="center" valign="middle">0.18 μm<break/>0.13 μm</td>
<td align="center" valign="middle">Slope Compression, PWM, Asynchronous, ECC, Register Bank, Reconfigurable Filter, UART interface</td>
<td align="center" valign="middle">100 M<break/>133 M</td>
<td align="center" valign="middle">7.67 K</td>
<td align="center" valign="middle">5.8 m at 100 M<break/>1.9 m at 133 M</td>
<td align="center" valign="middle">0.076<break/>0.037</td></tr></tbody></table></table-wrap>
<table-wrap id="t3-sensors-12-16211" position="float">
<label>Table 3.</label>
<caption>
<p>The Gate Count of each Function in MCU design.</p></caption>
<table frame="box" rules="all">
<thead>
<tr>
<th align="center" valign="middle"><bold>Function</bold></th>
<th align="center" valign="middle"><bold>Multiple Selector</bold></th>
<th align="center" valign="middle"><bold>Register Bank &amp; Reconfigurable Filter</bold></th>
<th align="center" valign="middle"><bold>Lossless Compressor (Forecaster + Entropy)</bold></th>
<th align="center" valign="middle"><bold>ECC</bold></th>
<th align="center" valign="middle"><bold>PWM</bold></th>
<th align="center" valign="middle"><bold>UART</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top"><bold>Gate Count</bold></td>
<td align="center" valign="top">1.88 K</td>
<td align="center" valign="top">3.24 K</td>
<td align="center" valign="top">3.77 K</td>
<td align="center" valign="top">1.6 K</td>
<td align="center" valign="top">0.12 K</td>
<td align="center" valign="top">0.44 K</td></tr></tbody></table></table-wrap>
<table-wrap id="t4-sensors-12-16211" position="float">
<label>Table 4.</label>
<caption>
<p>Comparison of the Data Compression Rates.</p></caption>
<table frame="box" rules="cols">
<thead>
<tr>
<th align="center" valign="middle"><bold>MIT-BIH Pattern No.</bold></th>
<th align="center" valign="middle"><bold>Original (KB)</bold></th>
<th align="center" valign="middle"><bold>Compression Rate (CR) of Previous Work [</bold>8<bold>]</bold></th>
<th align="center" valign="middle"><bold>Compression Rate (CR) of this Work</bold></th></tr>
<tr>
<th align="center" valign="middle" colspan="4">
<hr/></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top">112</td>
<td align="center" valign="top">1,696</td>
<td align="center" valign="top">2.35</td>
<td align="center" valign="top">2.59</td></tr>
<tr>
<td align="center" valign="top">115</td>
<td align="center" valign="top">1,696</td>
<td align="center" valign="top">2.48</td>
<td align="center" valign="top">2.53</td></tr>
<tr>
<td align="center" valign="top">121</td>
<td align="center" valign="top">1,696</td>
<td align="center" valign="top">2.26</td>
<td align="center" valign="top">2.56</td></tr>
<tr>
<td align="center" valign="top">201</td>
<td align="center" valign="top">1,696</td>
<td align="center" valign="top">2.45</td>
<td align="center" valign="top">2.53</td></tr>
<tr>
<td align="center" valign="top">205</td>
<td align="center" valign="top">1,696</td>
<td align="center" valign="top">2.51</td>
<td align="center" valign="top">2.68</td></tr>
<tr>
<td align="center" valign="top">231</td>
<td align="center" valign="top">1,696</td>
<td align="center" valign="top">2.41</td>
<td align="center" valign="top">2.56</td></tr></tbody></table></table-wrap></sec></back></article>
